一千萬個為什麽

搜索

在popToViewController之後,NavigationController變為零

在我的“[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];”之後,我的navigationcontroller變為零。

this is my scene: InsertViewController - >

[self.navigationController pushViewController:choiceViewController animated:YES];

ChoiceViewController ->

 [self.navigationController pushViewController:choiceDetailViewController animated:YES];

ChoiceDetailViewController ->


InsertViewController *insertViewController =  [self.navigationController.viewControllers objectAtIndex:0] ;
UINavigationController *secondaryNavigationCtrl = [[UINavigationController alloc] initWithRootViewController:insertViewController];
secondaryNavigationCtrl.navigationBar.barStyle = UIBarStyleBlackOpaque;
[self presentModalViewController:secondaryNavigationCtrl animated:YES];
[secondaryNavigationCtrl release];
[

當InsertView中的“ok”按鈕(self.navigationItem.leftBarButtonItem)剛剛啟動時,它會回到ChoiceDetailViewController然後我做了一個 [code] [self.navigationController dismissModalViewControllerAnimated:YES]; [/碼]

之後我做了一個


[self.navigationController popToViewController: [self.navigationController.viewControllers objectAtIndex:0] animated:YES];
Which go back tot the InsertViewController, and when i do the cycle again i see my navigationcontroller is nil...

知道我做錯了什麽嗎?

提前致謝。

最佳答案

不確定這是否解決了您的問題,但我遇到了這個問題,因為實現彈出視圖控制器的代碼的類實際上已經彈出。這導致我的self.navigationController為零,因為它本身被刪除了。我將代碼移動到一個沒有彈出的類,它沒有設置為nil。

在堆棧看起來像這樣之前,其中一個ViewControllers彈出self.navigationController是零。

PopableViewController
   functionThatCallsPopToViewController
PopableViewController
   functionThatCallsPopToViewController
RootViewController

PopableViewController
PopableViewController
RootViewController
   functionThatCallsPopToViewController

由於沒有彈出RootViewController,因此self.navigationController沒有設置為nil。唯一棘手的是,現在你需要在其他viewControllers中保留對RootViewController的引用。

轉載註明原文: 在popToViewController之後,NavigationController變為零