iOS 8.3 modalPresentationStyle OverCurrentContext不继承状态栏外观和可见性

时间:2015-04-21 19:49:30

标签: statusbar uimodalpresentationstyle ios8.3

考虑以下设置:

  • 您有一个简单的应用程序,其中包含一个UINavigationController子类和一个UIViewController子类。
  • UINavigationController会覆盖preferredStatusBarStyle()方法并返回UIStatusBarStyle.LightContent
  • UIViewController会覆盖prefersStatusBarHidden()方法并返回true

在iOS 8.0 - 8.2中,当UINavigationController设置为modalPresentationStyle时,会显示另一个UIModalPresentationStyle.OverCurrentContext(另一个不覆盖任何内容的UIViewController),新呈现的控制器会继承状态栏外观和能见度。

但在iOS 8.3完全相同的情况下 - 新呈现的控制器不会继承状态栏的外观和可见性

另一个例子是呈现UIImagePickerController的实例 - 关于状态栏外观完全相同。

问题是:

  • 为什么在iOS 8.3中新呈现的控制器不会继承状态栏外观?
  • 发生了什么变化(我无法在iOS 8.2到8.3 API差异中找到任何有意义的参考资料)?
  • 有没有优雅的解决方案,而不是覆盖外观和可见性方法?

1 个答案:

答案 0 :(得分:6)

试试:

(viewControllerToBePresented).modalPresentationCapturesStatusBarAppearance = true