前提・実現したいこと
RxSwiftの勉強のため、
以下のプロジェクトを参考にしてiPhoneのパスコードロックのような画面を作ろうと思います。
https://github.com/rockname/ArchitectureSampleWithFirebase/tree/mvvm/ArchitectureSampleWithFirebase
画面の1~9, 0の数字部分はUIButtonで構成しようと思うのですが、
それぞれのUIButtonをタップした時のDriverをViewModelに渡そうと思い、
以下のように各ボタンのDriverを引数として渡す方法を思いつきました。
ViewController.swift
Swift
1class LoginViewController: UIViewController { 2 @IBOutlet var oneButton: UIButton! 3 @IBOutlet var secondButton: UIButton! 4 @IBOutlet var thirdButton: UIButton! 5 ... 6 @IBOutlet var zeroButton: UIButton! 7 8 func bindViewModel() { 9 let input = ViewModel.Input( 10 oneTrigger: oneButton.rx.tap.asDriver(), 11 secondTrigger: secondButton.rx.tap.asDriver(), 12 thirdTrigger: thirdButton.rx.tap.asDriver(), 13 ... 14 zeroTrigger: zeroButton.rx.tap.asDriver()) 15 ... 16
ViewModel.swift
Swift
1class ViewModel: ViewModelType { 2 3 struct Input { 4 let oneTrigger: Driver<Void> 5 let twoTrigger: Driver<Void> 6 let thirdTrigger: Driver<Void> 7 ... 8 let zeroTrigger: Driver<Void> 9 }
一つずつではなくまとめて渡して、タグなどでどのボタンが押されたかが検知できれば良いかと思ったのですが、そのような方法をご教示いただけないでしょうか?
あなたの回答
tips
プレビュー