0

我有一个将模态视图控制器用于各种目的的应用程序。对于这个问题,最重要的是,我们使用模态控制器在用户注销时显示登录屏幕。

我遇到的问题是,如果在调用时另一个模态控制器在屏幕上或屏幕外进行动画处理,则 presentModalViewController:animated: 似乎会静默失败。它将打印到调试控制台并显示警告,但该方法本身不会返回 BOOL 或抛出异常,因此我似乎无法检查代码是否失败,因此我可以在一秒钟内重试。

有没有什么方法可以检测到调用这个方法后控制器没有立即显示?

4

1 回答 1

2

所以当我输入这个问题时,我意识到我可以检查presentingViewController(或parentViewController)来查看它是否显示,如果没有,再试一次。

经过测试,它可以工作。想我会发布并回答这个问题,让其他人发现可能会遇到类似的问题。


我在测试中注意到的其他一些事情:

  • 看起来如果模态视图没有显示动画,即使您拨打电话时另一个模态视图正在动画,它也会成功。

  • 在您正在显示的控制器上调用dismissModalViewControllerAnimated:NO,在向模态控制器呈现动画之前,即使另一个控制器正在制作动画,它也将允许它成功完成。

于 2012-10-12T22:09:51.687 回答