3

私のアプリケーションでは、私がやっていることは次のとおりです。

rootViewController -> pushViewController -> pushViewController -> pushViewController -> 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];
    }
}

しかし、ここでメッセージが表示 されます
警告: プレゼンテーションまたは却下中にビューコントローラから却下しようとしています!

このアプリがクラッシュした後。

私はこれについて検索しましたが、私にとって役立つものは何も見つかりませんでした. なぜこれが起こっているのか説明できる人はいますか?

4

1 に答える 1

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

このコードは私にとってはうまくいきます、

重要:

viewControllerによって提示されなければなりませんnavigationController。(ほとんどの場合) そうでない場合は、 に電話してself.presentingViewController.navigationControllerください。

于 2013-09-21T16:02:20.647 に答える