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
    并检查选择了哪个按钮索引
  • 如果是,则继续从服务器获取数据,如果不是,则不执行任何操作
  • 如何使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按钮连接到执行请求的另一个信号上?