2017-07-28 55 views
0

我想問一下RxSwift。
我有一個問題,當我想使用的tableView委託功能與RxSwift
我不知道問題的根源..
問題是,當我與rx.ItemSelected小區選擇,我得到了細胞位置和事件首次觸發得很好。
我做的事件是pushViewController,然後當我按回到以前的視圖。之後,我再次點擊相同的單元格。單元格會觸發兩次,如果我們做同樣的事情,它會從1 - > 2 - > 3 - > n + 1增量觸發。有沒有什麼辦法解決這個問題? 這裏是我的部分代碼:Rx ItemSelected做動作取決於觸發了多少動作

root.tableView.rx.itemSelected.subscribe(onNext: { index in 
    switch index.row : 
    case 0 : 
    DSource.navbar?.pushViewController(nextViewController, animated: true) 
    case 1: 
    Source.navbar?.pushViewController(secondViewController, animated: true) 
    default : 
    break 

} 
+1

這個代碼在哪個方法中?有沒有'disposeBag'?似乎每次出現'ViewController'時都會創建訂閱。 – XFreire

回答

0

添加一次性包以刪除訂閱。

let disposeBag = DisposeBag() 

     root.tableView.rx.itemSelected.subscribe(onNext: { index in 
      switch index.row 
      case 0: DSource.navbar?.pushViewController(nextViewController, animated: true) 
      case 1: Source.navbar?.pushViewController(secondViewController, animated: true) 
      default : break 
     }).addDisposableTo(disposeBag)