2012-05-16 69 views
2

我在导航堆栈中有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]]) 

回答

3

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

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

实测值这一个也有帮助..'[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:4]动画:YES];' –

相关问题