RxSwift不使用UIButton

时间:2017-04-07 17:26:14

标签: ios iphone rx-swift

我正在研究RxSwift并开始创建一些基本的。我添加了新按钮但是rx_tap订阅不适用于按钮操作。以下是我的代码,请让我知道我做错了什么

    let button = UIButton(frame: CGRect(x: 10, y: 66, width: 100, height: 21))
    button.backgroundColor = UIColor.redColor()
    button.setTitle("Login", forState: UIControlState.Normal)

    let disposeBag = DisposeBag()
    button.rx_tap
        .subscribe { [weak self] x in
            self!.view.backgroundColor = UIColor.redColor()
    }
    .addDisposableTo(disposeBag)
    self.view.addSubview(button)

1 个答案:

答案 0 :(得分:5)

由于DisposeBag的范围,您的订阅会立即取消。它被创建,然后超出范围并立即解除分配。你需要在某处保留你的包。如果您正在使用视图控制器或类似的东西,您可以在那里创建一个属性并将其分配给它。