Ios ReactiveCocoa 4-需要在点击按钮时验证输入的帮助吗

Ios ReactiveCocoa 4-需要在点击按钮时验证输入的帮助吗,ios,reactive-cocoa,reactive-cocoa-4,Ios,Reactive Cocoa,Reactive Cocoa 4,我是ReactiveCocoa的新手,我正在尝试找出在点击按钮时验证表单输入的语法。validTextSignal有相当多的示例代码,但大多数代码要么与Action enableIf挂钩,要么直接处理UI绑定 想法很简单,我有一个登录屏幕,带有电子邮件和密码输入。我想要的是在登录时处理验证点击以显示UIAlertView(例如“请输入您的电子邮件”) 这是我在一段时间后发现的,代码是有效的,但我不确定这是否应该是实现它的方法 self.s_formErrorMessage <~ combi

我是ReactiveCocoa的新手,我正在尝试找出在点击按钮时验证表单输入的语法。validTextSignal有相当多的示例代码,但大多数代码要么与Action enableIf挂钩,要么直接处理UI绑定

想法很简单,我有一个登录屏幕,带有
电子邮件
密码
输入。我想要的是在
登录时处理验证
点击以显示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 ""
        })
另外,如果为false,我们是否可以从Action enableIf捕获中断事件

任何关于更好的方法的建议都会受到极大的欢迎


Cheers

操作与按钮一起使用,用于在执行请求时禁用(例如登录请求)。所以在这种情况下,如果输入无效,则需要禁用按钮

或在提示文本字段中绑定错误文本(如果无效)

但是,如果您只想显示关于失败的有效字段的文本错误警报,请尝试以下代码:


btn_login.rac_signalForControlEvents(.TouchUpInside)
.toSignalProducer().map{[unowned self]\uIn
返回self.viewModel.s_formErrorMessage.value
}.filter{!$0.isEmpty}
.startWithNext{[unowned self]中的文本
self.showAlert(“,消息:文本)
}

btn_login.rac_signalForControlEvents(.TouchUpInside).subscribeNextAs { (button: UIButton) in
        if !self.viewModel.s_formErrorMessage.value.isEmpty {
            self.showAlert("", message: self.viewModel.s_formErrorMessage.value)
        }
    }