Ich bin relativ neu in RxSwift und versuche Best Practices zu implementieren, während ich mich entwickle.RxSwfit: Ist es eine schlechte Übung, ein vorgestelltes View-Controller-View-Modell zu abonnieren?
Auf meinem Home-View-Controller muss ich einen benutzerdefinierten Alarmansicht-Controller präsentieren, wo der Benutzer Text in ein Textfeld eingibt und auf bestätigen klickt. Angenommen, der Text ist gültig, wird die Warnung beendet und ein neuer View-Controller wird gedrückt.
Um die Verwendung eines Callbacks oder Delegaten zu vermeiden, stelle ich den Alarmansicht-Controller vor, dann abonniert mein HomeView-Controller das Textfeld des Alarmansicht-Controllers und bestätigt die Schaltfläche.
Ist es eine schlechte Übung, einen anderen View-Controller zu abonnieren?
Pseudocode:
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)
Ich habe diesen Code getestet und es funktioniert ohne Probleme.