使用文本字段设置rxSwift?

时间:2017-08-29 10:41:06

标签: ios swift rx-swift

我第一次使用rxSwift,我的View中有一个文本字段,我想将其值设置为对应的viewModels属性。我有以下代码,但它会抛出错误。我在这里缺少什么?

self.loginView.emailTextField.rx.text
            .bindTo(self.loginViewModel.userEmail)
            .addDisposableTo(self.disposeBag)

问题:

  

无法使用类型为'(String)'

的参数列表调用'bindTo'

1 个答案:

答案 0 :(得分:0)

我认为您已在ViewModel中为userEmail使用了String类型。您不能将observable绑定到普通String。您的视图模型类型应如下所示:

var userEmail = Variable<String>("")

现在从ViewController你可以像这样绑定:

emailTextField.rx.text.orEmpty
    .bind(to: viewModel.userEmail)
    .addDisposableTo(disposeBag)

此外,如果你想使用可选字符串,你也可以这样做:

var userEmail = Variable<String?>(nil)
emailTextField.rx.text.bind(to: viewModel.userEmail)