我正在尝试使用 Bond 将 UI 元素绑定(bind)到我的 View 模型。当我尝试将 searchTextField 绑定(bind)到我的 View 模型 searchString 时,Xcode 8.3.3 给出“调用中的参数标签不正确(有 'to:',预期 'signal:')”错误。怎么了?
import UIKit
import Bond
import ReactiveKit
class SearchViewModel {
let searchString = Observable<String>("")
}
class SearchViewController: UIViewController {
@IBOutlet weak var searchTextField: UITextField!
let viewModel = SearchViewModel()
override func viewDidLoad() {
super.viewDidLoad()
bindToViewModel()
}
func bindToViewModel() {
searchTextField.reactive.text.bind(to: viewModel.searchString)
}
}
最佳答案
问题在于:
let searchString = Observable<String>("")
需要:
let searchString = Observable<String?>("")
因为UITextField: BindableProtocol { public func bind(signal: Signal<String?, NoError>) -> Disposable { return reactive.text.bind(signal: signal) } }
正如 3stud1ant3 指出的那样,需要一个可选的。
关于ios - 绑定(bind) UITextField 来查看模型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46101077/