绑定swift属性';s值到viewModel';s属性
我知道,这个问题可能很愚蠢,对不起 情况: 具有属性的UIViewController绑定swift属性';s值到viewModel';s属性,swift,mvvm,binding,reactive-cocoa,Swift,Mvvm,Binding,Reactive Cocoa,我知道,这个问题可能很愚蠢,对不起 情况: 具有属性的UIViewController var selectedItem:(项:项实体,索引:Int)? struct ItemEntity { let id: String let name: String } 和具有属性的viewModel var itemVM=MutableProperty(“”) 问题: 如果我想绑定textField.text值,我只需要使用 viewModel.name <~ nameField
var selectedItem:(项:项实体,索引:Int)?
struct ItemEntity {
let id: String
let name: String
}
和具有属性的viewModelvar itemVM=MutableProperty(“”)
问题:如果我想绑定textField.text值,我只需要使用
viewModel.name <~ nameField.rac_textSignal().toSignalProducer()
)首先,您使用RAC的ObjectiveC API(
RAC\u textSignal()
)有什么原因吗
当然,这仍然有效(特别是,如果你的应用程序中也有目标C代码的话)
但是,已将UI绑定引入Swift API,允许您从
viewModel.name <~ nameField.rac_textSignal().toSignalProducer()
现在,您可以如下设置selectedItem
:
let item1 = ItemEntity(id: "1", name: "One")
selectedItem.value = (item: item1, index: 0)
viewModel.itemVC <~ selectedItem.map { $0?.item.id ?? "" }
假设,viewModel.itemVC
的类型为MutableProperty
,现在可以像这样绑定selectedItem:
let item1 = ItemEntity(id: "1", name: "One")
selectedItem.value = (item: item1, index: 0)
viewModel.itemVC <~ selectedItem.map { $0?.item.id ?? "" }
viewModel.itemVC
viewModel.itemVC <~ selectedItem.map { $0?.item.id ?? "" }