我有一个名为“主页”的按钮。在按钮操作中,我有以下代码:
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES];当我点击这个按钮时,我的应用程序崩溃了。
将索引从1更改为2,然后它将完美地弹出视图。
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];我的视图顺序是Page1 --> Page2 --> Page3
我想从Page3转到Page1,但应用程序崩溃了。从Page3到Page2,它都运行得很好。
发布于 2011-04-22 15:38:29
尝尝这个。
在我写SeeMyScoresViewController的地方,你应该写你的View Controller类,你必须在上面运行。家庭类别)
NSArray *viewControllers = [[self navigationController] viewControllers];
for( int i=0;i<[viewControllers count];i++){
id obj=[viewControllers objectAtIndex:i];
if([obj isKindOfClass:[SeeMyScoresViewController class]]){
[[self navigationController] popToViewController:obj animated:YES];
return;
}
}发布于 2011-04-22 15:38:13
如果您想转到根视图控制器(page1),只需使用:
[self.navigationController popToRootViewControllerAnimated:YES];另外,索引中的第一个项目不是项目1,而是项目0:
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];这应该会将您带回第一个viewController,但是使用popToRootViewController方法会更容易。
发布于 2013-07-12 21:38:58
通常,从堆栈顶部执行此操作更为重要,因此:
在UINavigationController子类或类别中:
- (void)popToLast:(Class)aClass
{
for (int i=self.viewControllers.count-1; i>=0; i--)
{
UIViewController *vc = self.viewControllers[i];
if ([vc isKindOfClass:aClass])
{
[self popToViewController:vc animated:YES];
break;
}
}
}你把它叫做
popToLast:[SomeViewController class];https://stackoverflow.com/questions/5753256
复制相似问题