已在ios8中激活PoptorootViewController

已在ios8中激活PoptorootViewController,ios,objective-c,uinavigationcontroller,ios8,Ios,Objective C,Uinavigationcontroller,Ios8,我在我的应用程序中使用故事板,其中有一个主页面,用户可以从该主页面转到工具页,也可以从工具页转到子工具页,即 Main-->Tools-->SubTools 所有的步骤都是使用Push执行的 现在,我有一个主页按钮,它将用户带到主页。我正在使用 [self.navigationController popToRootViewControllerAnimated:YES]; 弹出到根视图控制器。这在ios7中运行良好,但当我尝试在ios8中使用它时,它没有任何作用,因此我将其更

我在我的应用程序中使用故事板,其中有一个主页面,用户可以从该主页面转到工具页,也可以从工具页转到子工具页,即

  Main-->Tools-->SubTools
所有的步骤都是使用
Push
执行的

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

[self.navigationController popToRootViewControllerAnimated:YES];
弹出到根视图控制器。这在
ios7
中运行良好,但当我尝试在
ios8
中使用它时,它没有任何作用,因此我将其更改为

[self.parentViewController.navigationController popToRootViewControllerAnimated:YES];
现在使用它的问题是,当从SubTools页面调用它时,它不会跳转到主页面,而是跳转到Tools页面

我检查了
poptrootviewcontrolleranimated
中返回的数组大小,它在
ios7
中是2,这是正确的,因为堆栈中有主页和工具页,但在
ios8
中数组的大小是1


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

在做了一点实验之后,我使用了一个循环来迭代控制器,如下所示

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