2012-05-30 64 views
8

是否可以兩次彈出導航控制器?我有這樣的導航結構:是否可以兩次彈出UINavigationController?

景一---->查看兩----->景三

我想什麼來完成是由一排的上景三水龍頭,直接返回到View One。我通過協議委託完成了三到兩個,但在視圖中設置委託一個不工作,並設置兩個連續的委託協議都彈出導航控制器,給我錯誤:嵌套的導航控制器活動(或類似的東西)。

任何幫助,將不勝感激。提前致謝!

回答

32

有幾個流行的選擇

- (UIViewController *)popViewControllerAnimated:(BOOL)animated 
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated 
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated 
  • 第一個彈出頂部控制器。
  • 第二個允許你彈出整個堆棧到達根目錄。
  • 第三個允許你彈出到你有參考的任何viewController。你可以用self.navigationController.viewControllers得到的viewController,然後與陣列工作,以得到你想要的彈出來
+1

謝謝,作品像魅力! – Marcal

4

「自我」的具體的viewController似乎第一個彈出之後被釋放

UINavigationController *navigationController = self.navigationController; 
[navigationController popViewControllerAnimated:NO]; 
[navigationController popViewControllerAnimated:YES]; 
10

使用下面的代碼。根據您的需求,您可以使用任何數字而不是-3來彈出。

的代碼:

ViewController *View = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-3]; 
    [self.navigationController popToViewController:View animated:YES]; 

夫特3.0 *

令控制器= self.navigationController .viewControllers [(self.navigationController .viewControllers.count?)! - 3]

 self.navigationController?.popToViewController(controller!, animated: true) 
+2

更好的答案。 ! – Xeieshan

8

你可以試試這個

[self.navigationController popToViewController:[[self.navigationController viewControllers] objectAtIndex:1] animated:YES]; 

希望它幫助!

相關問題