2017-07-28 2 views
0

Ich möchte über RxSwift fragen. Tableview Delegatfunktion verwenden, um mit RxSwift
ich weiß nicht, die Quelle des Problems
Ich habe ein Problem, wenn ich will ..
Das Problem ist, wenn ich mit rx.ItemSelected auf eine Zelle wählen zu tun, habe ich die Zellposition und -ereignis werden beim ersten Mal mit Well ausgelöst.
Das Ereignis, das ich mache, ist pushViewController und dann, wenn ich zurück zur vorherigen Ansicht drückte. Danach klopfe ich wieder auf die selbe Zelle .. die Zelle wird zweimal ausgelöst und wenn wir das Gleiche machen, wird es wie inkrementell ausgelöst von 1 -> 2 -> 3 -> n + 1 Gibt es einen Weg um das zu beheben? Hier ist mein Teil meines Codes:Rx ItemSelected tun Aktion hängt davon ab, wie viel Aktion ausgelöst

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

In welcher Methode ist dieser Code? Gibt es einen 'disposeBag'? Es scheint, als ob das Abonnement jedes Mal erstellt wird, wenn "ViewController" erscheint. – XFreire

Antwort

0

hinzufügen disposableBag das Abonnement zu entfernen.

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) 
Verwandte Themen