警告:在演示或解雇正在进行时,尝试从视图控制器<uinavigationcontroller:0xb359a20 =“”>中解除</uinavigationcontroller:>

时间:2013-09-21 15:27:16

标签: ios objective-c uinavigationcontroller presentmodalviewcontroller poptoviewcontroller

在我的应用程序中,我正在做的是:

rootViewController - &gt; pushViewController - &gt; pushViewController - &gt; pushViewController - &gt; presentModalViewController

从presentModalViewController我想直接转到rootViewController。

所以我做的是:

while(theViewController = [theObjectEnumerator nextObject ])
     {
         if([theViewController modalTransitionStyle] == UIModalTransitionStyleCoverVertical)
         {
             [self.mNavigationController popToRootViewControllerAnimated:
              YES];
         }
     }
 }else
while(theViewController = [theObjectEnumerator nextObject ])
{
    if([theViewController modalTransitionStyle] == UIModalTransitionStyleCoverVertical)
    {
        [self.mNavigationController dismissModalViewControllerAnimated:YES];
    }
}

但在这里我收到了一条消息
警告:正在进行演示或解雇时,尝试从视图控制器中解除!

此应用程序崩溃后。

我搜索了这个,但找不到对我有用的东西, 任何机构都可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:5)

[self dismissViewControllerAnimated:YES completion:^{
    [(UINavigationController *)self.presentingViewController popToRootViewControllerAnimated:YES];
}];

这段代码对我来说很好,

重要

viewController必须提供navigationController。 (在多数情况下) 如果没有,请致电self.presentingViewController.navigationController