iOS:自定义模式演示后维护状态栏

时间:2018-03-27 17:39:36

标签: ios statusbar presentviewcontroller

我有一个有点复杂的模态视图控制器层次结构,它破坏了我的iOS应用程序中的状态栏。

我的主视图控制器层次结构是容器UINavigationController内的UIViewController子类。当我进入“设置”面板时,我使用"卡式的"动画到"缩小"包含UINavigationController,然后在主UIViewController之上以模态方式显示“设置”面板UINavigationController。到现在为止还挺好。如果我反转该动画(退出“设置”面板),我的UI将按预期恢复。

“设置”面板中有一个功能,其中另一个模态UIViewController(自定义UIAlertView - 类似模态)显示在第一个模态UIViewController的顶部。发生这种情况时,所有内容都会按预期显示,但有一个例外(详情如下,在一些其他详细信息之后):

  • 在任何这些动画之前,包含UINavigationController的{​​{1}}高度为64点(UINavigationBar为44点,而在UINavigationBar下延伸的部分为20点状态栏)。这是对的。
  • 当第一个动画发生时(显示"卡片般的"设置面板),将保留20个额外高度的点,因为它们应该是(这允许展开UI以恢复原始动画)布局正确)。
  • 当第二个动画发生时,在模态UIViewController之上呈现模态UINavigationController,"额外"动画20分,他们不会回来。这意味着,当我的动画解开时,我所包含的UINavigationBar的{​​{1}}不够高,并且其图标会显示在状态栏图标下。

我不知道为什么只有在出现第二个模态时才会发生这种变化。我怎样才能保持"额外"一直有20分填充?如果我不能这样做,我怎样才能在需要时恢复它?

0 个答案:

没有答案