RxSwift不能与UIButton一起工作

问题描述:

我正在使用RxSwift并开始创建一些基本的。我添加了新的按钮,但是rx_tap订阅不适用于按钮操作。下面是我的代码,请让我知道我做错了RxSwift不能与UIButton一起工作

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) 

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

+0

谢谢迪玛,你可以请示例代码相同,这将是非常好的帮助 – Kashif

+0

移动'let disposeBag = DisposeBag()'出该函数和作为包含类中的属性声明。只要做到这一点,就可以让代码的其他部分起作用。 – Dima

+0

哇,它的作品像一个魅力,感谢您的帮助,我会永远感谢,我对RxSwift很新,它使我很困惑。 – Kashif