這樣做:
[[self navigationController] dismissModalViewControllerAnimated:YES];
,將讓你回到那個模式地呈現導航控制器的VC。在這之後取得更遠的地方取決於你如何在導航控制器之前推送這些「少量視圖」。
編輯 - 解釋去最深的根......
這聽起來像那些「少數意見」是另一個,導航控制器的堆棧底層。這可能有點棘手,因爲乾淨的方式是讓底層導航控制器彈出它自己的根目錄。但是,它怎麼知道它上面的模態VC已經完成了?
我們稱之爲做第二導航控制器VC_a的模式呈現視圖控制器。它是一個模態表示的導航控制器,其最高層的VC是VC_b。當VC_b模式自行解散時,VC_a如何才能知道彈出到它的導航根目錄?
好答案(通常)是VC_b決定辭退本身是有原因的 - 在你的應用中的一些條件/模式改變,使其決定要做。
我們希望VC_a檢測這個條件了。當VC_b被開除,VC_a得到一個viewWillAppear中的消息,因爲它即將被揭開:
// VC_a.m
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (/* some app condition that's true when VC_b is done */) {
// I must be appearing because VC_b is done, and I'm being uncovered
// That means I'm done, too. So pop...
[self.navigationController popToRootViewControllerAnimated:NO];
} else {
// I must be appearing for the normal reason, because I was just pushed onto the stack
}
}
哪個navigationController你打電話?它會彈出到名爲I imagine的導航控制器的根目錄。 – 2012-04-13 21:02:04
將第一個視圖控制器作爲navigationController的rootViewcontroller – 2012-04-13 21:09:40
關閉模式視圖控制器,然後彈出到根目錄。 – Till 2012-04-13 21:14:19