2017-07-28 56 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)