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

KoC*_*BTa 6 statusbar uimodalpresentationstyle ios8.3

请考虑以下设置:

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

在iOS 8.0 - 8.2中,当另一个UINavigationController(具有不覆盖任何内容的另一个UIViewController)与modalPresentationStyleset设置一起呈现时UIModalPresentationStyle.OverCurrentContext,新呈现的控制器继承状态栏外观和可见性.

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

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

问题是:

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

Fab*_*bio 7

试试看:

(viewControllerToBePresented).modalPresentationCapturesStatusBarAppearance = true
Run Code Online (Sandbox Code Playgroud)