2016-04-05 18 views
2

PublishSubjectを使用してボタンのクリックを転送しようとしています。しかし、このPublishSubjectは初期化時にトリガされ、それが私のロジックを妨害します。これは私がやっているものです:初期化時に意図せずにRxSwift PublishSubjectトリガーが発生する

@IBAction func buttonClicked(sender: AnyObject) { 
     buttonClick.onNext() 
    } 

をし、その後、私はそれを購読する:

var buttonClick = PublishSubject<Void>() 

ボタンのタップ動作に続いて

(これは初期化ラインが最初に次のイベントがトリガされます)

buttonClick 
      .asDriver(onErrorJustReturn:()) 
      .driveNext {() in 

      }.addDisposableTo(disposeBag) 

最初の[次の]イベントの公開をトリガーしないでこれを行う方法はありますか初期設定時には?

乾杯!

+1

あなたは単に 'rx_tap'ボタンのメソッドを使うことができますか? –

+0

@MichałCiubaこれははるかに良い解決策です!ありがとう。ただし、最初の意図しない次のイベントが引き続き発生します。これは今私が持っているものです: 'emptyStateView.button.rx_tap .asDriver(onErrorJustReturn :()) .driveNext {()in } .addDisposableTo(disposeBag)' –

答えて

0

@MichałCiubaが提案したようにrx_tapを使用して終了しました。

次回の予期せぬイベントについて何らかの理由で何回かブレークポイントが停止していたことが判明しましたが、実際のコードは期待通りに機能していました。