我在使用Reactive Cocoa 4.0和MVVM(swift 2.0)的项目中工作。在视图模型中,我有根据文本字段更改更新的字符串,但如果字符串更改,我需要更新该文本字段。是否可能用于textfield和string(ageString)之间的双向绑定。
txtAge.rac_textSignal() ~> RAC(objViewModel, "ageString")
答案 0 :(得分:4)
您可以尝试以下代码:
viewModel.ageString.producer
.skipRepeats { [weak self] in
$1 == self?.txtAge.text
}.startWithNext { [weak self] in
self?.txtAge.text = $0
}
viewModel.ageString <~ txtAge.rac_textSignal()
.toSignalProducer()
.map { ($0 as? String) ?? "" }
.flatMapError { _ in SignalProducer<String, NoError>.empty }
答案 1 :(得分:0)
在RAC 2.x之前,您可以使用提供此功能的RACChannel
(您可以订阅每个频道终端,并在新值到达时收到通知)。
频道和终端尚未移植到RAC 2.x,所以今天在RAC中没有双向绑定,但它不应该是一个大问题,因为你总是可以找到一个不同的(非常好的方法。
有关更多详细信息,您可以在github上的框架问题中找到关于此主题的许多主题,例如: