我是 ReactiveCocoa 的新手,我正在尝试找出在点击按钮时验证表单输入的语法。有相当多的validTextSignal 示例代码,但其中大多数要么挂钩到Action-enableIf,要么直接处理UI 绑定。
这个想法很简单,我有一个登录屏幕,有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)
}
}
另外,无论如何我们可以从 Action-enableIf false 中捕获 Interrupted 事件吗?
任何关于更好方法的建议都会非常感激。
干杯