以正确的方式从导航堆栈中删除viewcontrollers

时间:2012-05-16 05:18:02

标签: iphone ios uiviewcontroller uinavigationcontroller

我的导航堆栈中有5个视图控制器(比如A,B,C,D,E)。 ViewController E位于堆栈顶部。在ViewController E中单击按钮时,我想移动到ViewController C.为此,我使用以下代码。

NSMutableArray *navigationarray = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
[navigationarray removeObjectAtIndex:4];
[navigationarray removeObjectAtIndex:3];
self.navigationController.viewControllers = navigationarray;
[navigationarray release];

有没有更好的方法来执行此操作,我可以检查从导航阵列中删除哪个viewController

编辑:在这种情况下,我可以检查视图控制器是否被移除isKindOfClass特定视图控制器的类

if ([[navigationarray objectAtIndex:4] isKindOfClass:[MyClass class]])

1 个答案:

答案 0 :(得分:3)

从导航控制器弹出视图控制器是一种简单的方法。这将删除VC E和D.

[self.navigationController popToViewController:viewControllerC animated:YES];