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
的范围。它被创建,然后超出范围并立即释放。你需要保留你的行李。如果你正在使用视图控制器或类似的东西,你可以在那里创建一个属性并将其分配给它。
谢谢迪玛,你可以请示例代码相同,这将是非常好的帮助 – Kashif
移动'let disposeBag = DisposeBag()'出该函数和作为包含类中的属性声明。只要做到这一点,就可以让代码的其他部分起作用。 – Dima
哇,它的作品像一个魅力,感谢您的帮助,我会永远感谢,我对RxSwift很新,它使我很困惑。 – Kashif