ReactiveCocoaが新しく、ボタンタップ時にフォーム入力を検証する構文を理解しようとしています。 validTextSignalのサンプルコードはかなりたくさんありますが、ほとんどはAction-enableIfにフックされているか、UIバインディングを直接処理しています。ReactiveCocoa 4 - ボタンのタップ時に入力を検証する際に助けが必要
アイデアはシンプルで、私はemail
とpassword
と入力してログイン画面を持っています。私が望むのは、Login
タップで検証を処理してUIAlertViewを表示することです(例えば、 "あなたのメールアドレスを入力してください")。
これは私がしばらくしてから分かったことですが、コードは機能しますが、これを行う方法であるべきかどうかはわかりません。
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 ""
})
そして、ここでは、私はそれを使用する方法です、ただ単に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)
}
}
ボタンで値を使用しても、とにかく私たちはアクション・enableIfのfalseから中断イベントをキャプチャすることができますがありますか?
より良いアプローチの提案は、はるかに理解されるでしょう。アクションが無効になってしばらくの間、ボタンで使用
乾杯