popTOViewController

Sam*_*007 29 objective-c ios

我有一个名为'HOME'的按钮.在该按钮操作中,我有以下代码:

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES];
Run Code Online (Sandbox Code Playgroud)

当我单击此按钮时,我的应用程序崩溃了.

将索引从1更改为2,然后它会完美地弹出视图.

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];
Run Code Online (Sandbox Code Playgroud)

我的视图序列是Page1 - > Page2 - > Page3

我想从Page3转到Page1,但应用程序崩溃了.从Page3到Page2,它运行正常.

Gyp*_*psa 85

试试这个.

在我编写SeeMyScoresViewController的地方,你应该编写你必须去的View Controller类.(例如,Home of Home)

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;
    }
}
Run Code Online (Sandbox Code Playgroud)


rck*_*nes 20

如果你想转到root viewcontroller(page1),只需使用:

    [self.navigationController popToRootViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

索引中的第一项也不是第1项,而是第0项:

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];
Run Code Online (Sandbox Code Playgroud)

这应该会让你回到第一个viewController,但是它们将更容易使用popToRootViewController方法.