呈现模态后 UINavigationController 布局损坏

Posted

技术标签:

【中文标题】呈现模态后 UINavigationController 布局损坏【英文标题】:UINavigationController Layout Broken after Presenting Modal 【发布时间】:2012-01-18 15:17:52 【问题描述】:

ios5 开始,我就有一个问题,当我呈现然后关闭模式视图时,我的导航控制器栏隐藏在状态栏下方。我已经阅读了论坛并尝试了很多方法,但我找不到解决此问题的方法。

此外,我在呈现任何模态视图控制器时都会出现这种行为,因此它似乎并不特定于我正在呈现的视图控制器。起初我以为是 ZXing 的问题,但是这似乎是 iOS5 更新的通用问题。

此外,如果我在关闭模式后选择 UITextField 并且我的导航栏隐藏在状态栏下,则键盘在我的窗口中出现错误。同样,如果我来回旋转,导航控制器栏和键盘工作正常。

任何想法都将不胜感激。

已解决 好的。我终于在这里找到了问题。同样,这只出现在 iOS5 中,但是当我的 RootViewController 启动时,它会暂停旋转,直到动画完成。完成后,它会再次允许旋转。问题是它在所有方面(包括肖像)都返回 NO。视图显示得很好,但是当我展示一个模态并返回时,视图几何图形被破坏了。一旦我将其更改为即使在动画期间也为纵向模式返回 YES,问题就消失了。

【问题讨论】:

您好,您能否提供更多有关您如何解决的信息?我有完全相同的问题,并且在使用 shouldAutorotateToInterfaceOrientation 方法时没有任何运气。 在我的例程 -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 中,我设置了是否允许旋转到新方向的条件。我有一个错误,我不允许任何方向。所以我添加了一个基本条件,至少总是允许肖像。 【参考方案1】:

已解决。我终于在这里找到了问题。同样,这只出现在 iOS5 中,但是当我的 RootViewController 启动时,它会暂停旋转,直到动画完成。完成后,它会再次允许旋转。问题是它在所有方面(包括肖像)都返回 NO。视图显示得很好,但是当我展示一个模态并返回时,视图几何图形被破坏了。一旦我将其更改为即使在动画期间也为纵向模式返回 YES,问题就消失了。

【讨论】:

以上是关于呈现模态后 UINavigationController 布局损坏的主要内容,如果未能解决你的问题,请参考以下文章

关闭模态视图控制器后呈现不同的视图控制器

在呈现模态视图控制器后推送导航控制器

关闭模态呈现的视图控制器后切换标签栏控制器视图控制器

呈现模态视图控制器时 iPhone 崩溃

如何在没有委托的情况下以模态方式呈现 ViewController,然后在 ViewController 被解除后运行回调函数/块?

应用程序激活时呈现模态视图