我试图在 MVVM 架构中首次使用 RAC 来检测 UIElement 上的点击,比如使用 Reactive Cocoa 的按钮。
我在 ViewController 中为我的按钮设置了 rac_command。
addContactBtn.rac_command = viewModel.addContact
我的 ViewModel 执行以下操作:
func init(){
self.addContact = RACCommand() {
(any:AnyObject!) -> RACSignal in
return RACSignal.createSignal({
(subscriber: RACSubscriber!) -> RACDisposable! in
print("creating viewModel")
let viewModel = ContactAddViewModel(services: self.services)
self.services.pushViewModel(viewModel)
return RACDisposable(block: {
})
})
}
}
但是,该命令只执行一次,然后当我弹出视图控制器并返回到原始视图控制器时按钮处于禁用状态。如何检测按钮点击任意次数?