iPhone:如何在导航控制器中移动到首页?

iPhone:如何在导航控制器中移动到首页?,iphone,uinavigationcontroller,Iphone,Uinavigationcontroller,如何在导航控制器中移动到首页 我知道如果我想转到rootpage,我可以使用 [self.navigationController popToRootViewControllerAnimated:YES]; 但我想搬到2页前。不是根页面和前页面 如何操作?如果您知道导航栏的视图控制器堆栈上的视图控制器,则可以使用: [self.navigationController popToViewController:viewControllerToShow animated:YES]; popT

如何在导航控制器中移动到首页

我知道如果我想转到rootpage,我可以使用

[self.navigationController popToRootViewControllerAnimated:YES]; 
但我想搬到2页前。不是根页面和前页面


如何操作?

如果您知道导航栏的视图控制器堆栈上的视图控制器,则可以使用:

[self.navigationController popToViewController:viewControllerToShow animated:YES]; 
popToViewController:已设置动画:

流行音乐 查看控制器,直到指定 视图控制器位于视图的顶部 导航堆栈


如果您持有对上述ViewController*的引用,则可以使用

[self.navigationController popToViewController:(UIViewController *) animated:(BOOL)];
这样,它返回到给定的ViewController

其他解决方法可以是,转到根目录,然后导航到主页(当然,如果它是级别1),而不使用动画。或者你可以一个接一个地弹出视图控制器,直到你到达那里。。。这完全取决于你的结构

但是要小心,如果您持有对所提到的ViewController的引用,则需要正确地保留/释放它

我希望它能帮助你

是的,你可以用

popToViewController:已设置动画:

弹出视图控制器,直到指定的视图控制器位于 导航堆栈的顶部

除了上述答案之外,如果您不能拥有视图控制器的实例,那么可以通过堆栈中视图控制器的索引来实现

NSArray *array = [self.navigationController viewControllers];

[self.navigationController popToViewController:[array objectAtIndex:2] animated:YES];