2015-02-24 75 views
0

我用這個代碼:任何人都可以解釋爲什麼popToViewController:方法不起作用嗎?

MainViewController *mvc = [[MainViewController alloc] init]; 
[self.navigationController popToViewController:mvc animated:YES]; 

,它崩潰,我不知道爲什麼,或者我錯了。錯誤是: 原因:'試圖彈出到不存在的視圖控制器。' ,但我的視圖控制器存在。

如果有人可以幫助我..

+0

錯誤是告訴你你的MainViewController實例在navigationController棧中不存在。當您彈出某個視圖控制器時,該視圖控制器必須存在於導航控制器的堆棧中。 – Steve 2015-02-24 17:40:03

+0

@Steve - 謝謝。現在我明白了! :) – Adela 2015-02-24 17:47:38

回答

0

我建議寫在你彈出視圖控制器與此類似的方法。

- (void) popCurrentViewController 
{ 
    UIViewController *popDestination = nil; 
    for (UIViewController *viewController in self.navigationController.viewControllers) 
    { 
     if ([viewController isKindOfClass:[MainViewController class]]) 
     { 
      popDestination = viewController; 
     } 
    } 

    if (popDestination) 
    { 
     NSLog(@"%@ Popping...", self); 
     [self.navigationController popToViewController:popDestination animated:true]; 
    } 
    else 
    { 
     // Handle if it can not find the specific view controller. 
    } 
} 
+0

是的,這是一個很好的代碼,這就是@Steve所說的。我做了類似的,但謝謝:) – Adela 2015-02-24 17:58:41

相關問題