我现在正在实施简单的facebook / google登录。但是试图在我的项目中使用ReactiveCocoa应用MVVM模式。我无法使用viewControllers绑定viewModel。试过CocoaActions但不能使它工作。
查看型号:
let name = MutableProperty<String>("")
let email = MutableProperty<String>("")
let phoneNo = MutableProperty<String>("")
let referal = MutableProperty<String>("")
var fbLoginAction:Action<OnboardingViewController,Bool,NSError>
查看控制器:
//MARK: Signup Binding
let loginCocoaAction = CocoaAction(viewModel.fbLoginAction., input:())
signupView.fbBtn.addTarget(loginCocoaAction, action: CocoaAction.selector, forControlEvents: .TouchUpInside)
答案 0 :(得分:1)
这个问题发布后已经有一段时间了。从那时起,RAC 5.0.0已经发布,这使得这更容易,这要归功于UI绑定:
假设您已按照视图模型中的定义准备好fbLoginAction
,您可以将此操作绑定到View Controller中的按钮,如下所示:
signupView.fbBtn.reactive.pressed = CocoaAction(fbLoginAction, input: self)
您的原始问题可能是因为您提供了()
作为输入,但fbLoginAction
的输入被定义为OnboardingViewController
。
取决于您是否真的打算这样做并需要OnboardingViewController
作为fbLoginAction
的输入,您可以使用input: self
在上面发布,或者如果您没有&#39 ; t实际上需要输入,你可以将其改为
let fbLoginAction:Action<(),Bool,NSError>
和
signupView.fbBtn.reactive.pressed = CocoaAction(fbLoginAction)