RxSwiftについては比較的新しいので、ベストプラクティスを実装しようとしています。RxSwfit:提示されたView Controllerビューモデルに登録するのは悪い習慣ですか?
私のホームビューコントローラでは、ユーザーがテキストフィールドにテキストを入力して確認するカスタムアラートビューコントローラを提示する必要があります。テキストが有効であると仮定すると、アラートは終了し、新しいView Controllerがプッシュされます。
コールバックまたはデリゲートを使用しないようにするには、アラートビューコントローラを表示してから、ホームビューコントローラがアラートビューコントローラのテキストフィールドと確認ボタンにサブスクライブします。
別のビューコントローラを購読することは悪い習慣ですか?
擬似コード:
let alert = viewModel.textFieldAlert()
present(alert)
alertSubscriptions(alert)
alertSubscriptions:
alert.textField.rx.text.subscribe(onNext: { [weak self] text in
self?.viewModel.numberOfItems.value = text ?? ""
}).addDisposableTo(disposeBag)
alert.confirmButton.rx.tap.subscribe(onNext: { [weak self] _ in
guard self != nil else { return }
if !self!.viewModel.validText { return }
alert.dismiss()
self!.alertConfirmed()
}).addDisposableTo(disposeBag)
私はこのコードをテストしているし、それが何の問題もなく動作します。