ios8中的popToRootViewControllerAnimated

时间:2014-10-07 10:03:12

标签: ios objective-c uinavigationcontroller ios8

我在我的应用程序中使用Storyboard,其中有一个主页面,用户可以从中进入工具页面,从工具页面到SubTools页面,即

  Main-->Tools-->SubTools

所有segue都是使用Push执行的。

现在我有一个主页按钮,将用户带到主页面。我正在使用

[self.navigationController popToRootViewControllerAnimated:YES];

弹出到根视图控制器。这在ios7中运行正常但是当我尝试在ios8中使用它时,这并没有做任何事情所以我将其更改为

[self.parentViewController.navigationController popToRootViewControllerAnimated:YES];

现在使用它的问题是,当从SubTools页面调用它时,不是跳转到Main页面,而是跳转到Tools页面。

我检查了popToRootViewControllerAnimatedios7中返回的数组的大小,其中ios8为2,这是正确的,因为堆栈中有Main页面和Tools页面,但是{{1}数组的大小为1。

还有其他人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:0)

在尝试了一下之后,我使用了一个循环来迭代控制器,如下所示

NSArray *controllers= [self.parentViewController.navigationController popToRootViewControllerAnimated:YES];
do
{
   controllers = [((UIViewController *)[controllers objectAtIndex:0]).parentViewController.navigationController popToRootViewControllerAnimated:YES];
}while(controllers.count>0);