1

我正在一个使用 Reactive Cocoa 4.0 和 MVVM(swift 2.0)的项目中工作。在视图模型中,我有将根据文本字段更改更新的字符串,但如果字符串更改,我需要更新该文本字段。是否有可能有两种方式文本字段和字符串(ageString)之间的绑定。

txtAge.rac_textSignal() ~> RAC(objViewModel, "ageString")
4

2 回答 2

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 }
于 2016-03-23T03:00:43.350 回答
0

在 RAC 2.x 之前,您可以使用RACChannels,它提供了此功能(您可以订阅每个频道终端并在新值到达时收到通知)。通道和终端尚未移植到 RAC 2.x,因此今天 RAC 中没有双向绑定,但这应该不是什么大问题,因为您总能找到不同的(恕我直言更好)方法.

有关更多详细信息,您可以在 github 上的框架问题中找到有关此主题的许多线程,例如:

于 2016-03-22T14:17:38.610 回答