1. 使用此代碼,並享受:數組
NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers]; // [navigationArray removeAllObjects]; // This is just for remove all view controller from navigation stack. [navigationArray removeObjectAtIndex: 2]; // You can pass your index here self.navigationController.viewControllers = navigationArray; [navigationArray release];
但願這會幫助你。
2. 你能夠先獲取數組中的全部視圖控制器,而後用相應的視圖控制器類檢查後,你能夠刪除你想要的。 下面是一小段代碼:ui
NSArray* tempVCA = [self.navigationController viewControllers]; for(UIViewController *tempVC in tempVCA) { if([tempVC isKindOfClass:[urViewControllerClass class]]) { [tempNavBarItems removeFromParentViewController]; } }
我認爲這將使您的工做更輕鬆。
3. 若是你正試圖從第五視圖控制器(跳過第3和第4)移動到第二個視圖控制器,你想[self.navigationController popToviewController:secondViewController]
。 你能夠獲得secondViewController
從導航控制器堆棧。spa
secondViewController = [self.navigationController.viewControllers objectAtIndex:yourViewControllerIndex];
//-----------------code
//先pushrem
[self.navigationController pushViewController:chatController animated:YES];it
//移除成員檔案控制器io
NSArray* tempVCA = [self.navigationController viewControllers];table
for(UIViewController *tempVC in tempVCA)class
{object
if([tempVC isKindOfClass:[InquiryObjectViewController class]])
{
[tempVC removeFromParentViewController];
}
}
self.navigationController.viewControllers = tempVCA;
//點擊返回按鈕 直接回到上一個控制器