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;
//点击返回按钮 直接回到上一个控制器