Ios 如何使用RAC命令处理确认
我刚刚开始在我的项目中使用Ios 如何使用RAC命令处理确认,ios,objective-c,swift,mvvm,reactive-cocoa,Ios,Objective C,Swift,Mvvm,Reactive Cocoa,我刚刚开始在我的项目中使用ReactiveCocoa。我试图弄清楚如何在使用UIAlertView时处理确认请求 我就是不知道该怎么办 启用带有验证的按钮 显示UIAlertView并检查选择了哪个按钮索引 如果是,则继续从服务器获取数据,如果不是,则不执行任何操作 如何使UIAlertView在开始执行之前首先显示 class MyViewModel: NSObject { dynamic var myText = "" var executeTransaction: RAC
ReactiveCocoa
。我试图弄清楚如何在使用UIAlertView
时处理确认请求
我就是不知道该怎么办
UIAlertView
并检查选择了哪个按钮索引class MyViewModel: NSObject {
dynamic var myText = ""
var executeTransaction: RACCommand!
override init() {
super.init()
let validSignal = RACObserve(self, "myText").mapAs {
(text: NSString) -> NSNumber in
return text.length >= 10
}.distinctUntilChanged()
self.executeTransaction = RACCommand(enabled: validSignal, signalBlock: {
(any: AnyObject!) -> RACSignal! in
return self.executingTransactionSignal()
})
}
func executingTransactionSignal() -> RACSignal! {
return RACSignal.createSignal {
subscriber in
subscriber.sendNext("testing")
subscriber.sendCompleted()
return nil
}
}
}
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.inputField.rac_textSignal() ~> RAC(self.viewModel, "myText")
self.verifyButton.rac_command = self.viewModel.executeTransaction
let alert = UIAlertView(title: "Title", message: "Continue", delegate: nil, cancelButtonTitle: "Change", otherButtonTitles: "Yes")
let alertSignal = return alert.rac_buttonClickedSignal().map({ (buttonIndex) -> AnyObject! in
let index = buttonIndex as Int
return index == 1
})
// trying see how to show, and subscribe to self.viewModels.executeTransaction.executionSignals
}
}
更新
我最后做的是在视图模型中创建一个方法,该方法接受闭包并返回rac命令。不过,我不确定这是否是最优雅的方式。我还没有学会Swift,因此我不能太容易地阅读您的代码,但如果您能更好地用RAC术语解释您想要的内容,我可以帮助您。我只是想在执行请求之前通过UIAlertView获得确认。我使用的是mvvm模式。得到确认我认为它不应该存在于视图模型中,但应该属于视图控制器。好吧,那么就把按钮连接到UIAlertView,然后把UIAlertView上的Ok按钮连接到执行请求的另一个信号上?