2017-09-07 2 views
2
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Tried to pop to a view controller that doesn't exist.' 

Lorsque vous utilisez ce codepopToViewController ne fonctionne pas, mais popViewController ne

self?.navigationController?.popToViewController(vc2, animated: true) 

Mais lorsque je tente de pop simplement son travail

self?.navigationController?.popViewController(animated: true) 

Je pousse ce viewController comme

navigationController?.pushViewController(vc2, animated: true) 

Je ne suis pas sûr, pushi Une vue signifie que lorsque j'essaie de faire popToViewController. Il a une vue sur le dessus. S'il vous plaît aider

+0

Peut être à la fois les objets ne sont pas les mêmes au moment de pousser et de pop. Pouvez-vous s'il vous plaît montrer le code d'où vous poussez et d'où vous éclatez. –

Répondre

3

essayez ceci: -

for obj in (self.navigationController?.viewControllers)! { 
      if obj is TestViewController { 
    let vc2: TestViewController = obj as! TestViewController 
    vc2.data = data 
       _ = 
self.navigationController?.popToViewController(vc2, animated: true) 
    break 
      } 
     } 

Assurez-vous que votre contrôleur de vue est ajouté sur la pile NavigationController.

+0

Thnx pour une réponse rapide. Une question, j'essaie de transmettre des données, mais incapable de le faire avec votre code.ex - Le code que j'essaie est obj.data = données. – cole

+0

cast votre contrôleur avec obj et transmettre des données. – Pushpendra

+0

Pouvez-vous me montrer comment le faire Comme j'utilise let vc2 = self? .storyboard? .instantiateViewController (withIdentifier: "TestViewController") comme! TestViewController puis en utilisant vc2, data = data – cole