我有一个应用程序,它使用模态视图控制器用于各种目的。最重要的是,对于这个问题,我们使用模态控制器在用户注销时显示登录屏幕。
我遇到的问题是,当调用时,如果另一个模态控制器在屏幕上或屏幕外进行动画处理,似乎presentModalViewController:animated:将无声地失败。它将通过警告打印到调试控制台,但该方法本身不会返回BOOL或抛出异常,因此我似乎无法检入代码是否失败,因此我可以在一秒钟内重试它。
有没有办法在调用此方法后检测到控制器无法立即显示?
答案 0 :(得分:1)
因此,当我输入这个问题时,我意识到我可以检查presentViewController(或parentViewController)以查看它是否显示,如果为nil,请再试一次。
经过测试,确实有效。想想我会发布并回答问题,让其他人发现可能会遇到类似的问题。
我在测试中注意到的更多事情:
看起来如果模态视图没有显示动画,即使您在拨打电话时动画另一个模态视图也会成功。
调用dismissModalViewControllerAnimated:显示的控制器上的NO,在呈现带有动画的模态控制器之前,即使另一个控制器正在动画,也会允许它成功完成。