我有一个有点复杂的模态视图控制器层次结构,它破坏了我的iOS应用程序中的状态栏。
我的主视图控制器层次结构是容器UINavigationController
内的UIViewController
子类。当我进入“设置”面板时,我使用"卡式的"动画到"缩小"包含UINavigationController
,然后在主UIViewController
之上以模态方式显示“设置”面板UINavigationController
。到现在为止还挺好。如果我反转该动画(退出“设置”面板),我的UI将按预期恢复。
“设置”面板中有一个功能,其中另一个模态UIViewController
(自定义UIAlertView
- 类似模态)显示在第一个模态UIViewController
的顶部。发生这种情况时,所有内容都会按预期显示,但有一个例外(详情如下,在一些其他详细信息之后):
UINavigationController
的{{1}}高度为64点(UINavigationBar
为44点,而在UINavigationBar
下延伸的部分为20点状态栏)。这是对的。UIViewController
之上呈现模态UINavigationController
,"额外"动画20分,他们不会回来。这意味着,当我的动画解开时,我所包含的UINavigationBar
的{{1}}不够高,并且其图标会显示在状态栏图标下。我不知道为什么只有在出现第二个模态时才会发生这种变化。我怎样才能保持"额外"一直有20分填充?如果我不能这样做,我怎样才能在需要时恢复它?