Ich bin neu in ReactiveCocoa, und ich versuche, die Syntax für die Validierung der Formulareingabe nach dem Tippen auf die Schaltfläche herauszufinden. Es gibt eine ganze Reihe von Beispielcode für validTextSignal, aber die meisten von ihnen sind entweder in Action-enableIf eingebunden oder behandeln UI-Bindungen direkt. Die Idee ist einfach, ich habe einen Login-Bildschirm mit email
und password
Eingang. Was ich will, ist die Validierung auf Login
tippen, um eine UIAlertView anzuzeigen (z. B. "Bitte geben Sie Ihre E-Mail").ReactiveCocoa 4 - Brauchen Sie Hilfe beim Validieren der Eingabe auf Knopfdruck
Hier ist, was ich nach einer Weile herausgefunden habe, der Code funktioniert, aber ich bin nicht sicher, ob dies der Weg sein sollte, es zu tun.
self.s_formErrorMessage <~ combineLatest(s_email.producer, s_password.producer)
.map({ (email, password) in
if adminNumber.isEmpty {
return "Please input admin number"
} else if password.isEmpty {
return "Please input password"
}
return ""
})
Und hier ist, wie ich es verwenden, einfach nur den Wert in Schaltfläche TouchUpInside
btn_login.rac_signalForControlEvents(.TouchUpInside).subscribeNextAs { (button: UIButton) in
if !self.viewModel.s_formErrorMessage.value.isEmpty {
self.showAlert("", message: self.viewModel.s_formErrorMessage.value)
}
}
Auch ist es trotzdem wir Interrupted Ereignis von Aktion-enableIf falsch erfassen kann?
Jeder Vorschlag für eine bessere Herangehensweise wäre viel appreaciated.
Prost