2017-04-07 5 views
1

私は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) 

答えて

5

やっているサブスクリプションがあるため、あなたのDisposeBagの範囲をすぐにキャンセルされたものをお知らせください。それは作成され、その後、範囲外になり、すぐに割り当てが解除されます。あなたはどこかにあなたのバッグを保持する必要があります。ビューコントローラなどを使用している場合、そこにプロパティを作成してそれに割り当てることができます。

+0

ありがとうDima、あなたのサンプルコードで同じことを説明してください。本当に助けになるでしょうか? – Kashif

+0

その関数から 'let disposeBag = DisposeBag()'を移動し、そのクラスのプロパティ宣言として移動してください。これを行うだけで、コードの残りの部分が機能します。 – Dima

+0

それは魅力のように働きます。多くの助けをいただきありがとうございます。私はいつも感謝しています。私はRxSwiftに非常に新しく、それが私に多くの混乱を引き起こしています。 – Kashif

関連する問題