2017-07-28 6 views
0

Je veux en savoir plus sur RxSwift.
Je suis un problème quand je veux utiliser la fonction de délégué tableView avec RxSwift
Je ne connais pas la source du problème ..
Le problème est quand je sélectionne sur une cellule avec rx.ItemSelected, je suis la position de la cellule et événement déclenchés avec bien à la première fois.
L'événement que je fais est PushViewController et puis quand je suis revenu à l'affichage précédent. Après cela, je tape à nouveau sur la même cellule .. la cellule sera déclenchée deux fois et si nous faisons la même chose, il se déclenchera comme incrémental de 1 -> 2 -> 3 -> n + 1
Yat-il un moyen réparer ça? Voici mon partielle de mon code:Rx ItemSelected faire l'action dépend de la quantité d'action déclenchée

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

Dans quel procédé est ce code? Y a-t-il un 'dépôtBag'? Il semble que l'abonnement est créé chaque fois que votre 'ViewController' apparaît. – XFreire

Répondre

0

Ajouter disposableBag pour supprimer l'abonnement.

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)