将ViewModel绑定到ViewController(ReactiveCocoa)iOS

时间:2016-04-25 11:37:45

标签: ios swift mvvm reactive-cocoa

我现在正在实施简单的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)

1 个答案:

答案 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)