【发布时间】:2015-06-29 04:18:57
【问题描述】:
考虑以下设置:
- 您有一个简单的应用程序,其中包含一个
UINavigationController子类和一个UIViewController子类。 - UINavigationController 覆盖
preferredStatusBarStyle()方法并返回UIStatusBarStyle.LightContent - UIViewController 覆盖
prefersStatusBarHidden()方法并返回true
在 iOS 8.0 - 8.2 中,当另一个 UINavigationController(带有另一个不覆盖任何内容的 UIViewController)呈现时,modalPresentationStyle 设置为 UIModalPresentationStyle.OverCurrentContext,新呈现的控制器会继承状态栏的外观和可见性。
但在 iOS 8.3 中,情况完全相同——新出现的控制器不会继承状态栏的外观和可见性
另一个例子是呈现UIImagePickerController 的一个实例 - 状态栏的外观完全相同。
问题是:
- 为什么在 iOS 8.3 中新出现的控制器不继承状态栏外观?
- 发生了什么变化(我在 iOS 8.2 到 8.3 API 差异中找不到任何有意义的参考)?
- 是否有任何优雅的解决方案,而不是在所有地方覆盖外观和可见性方法?
【问题讨论】:
标签: statusbar uimodalpresentationstyle ios8.3