【问题标题】:iOS 8.3 modalPresentationStyle OverCurrentContext does not inherit status bar appearance and visibilityiOS 8.3 modalPresentationStyle OverCurrentContext 不继承状态栏外观和可见性
【发布时间】: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


    【解决方案1】:

    试试看:

    (viewControllerToBePresented).modalPresentationCapturesStatusBarAppearance = true
    

    【讨论】:

    • 这对 iOS 8.3+ 没有影响,而是让 iOS 8.2- 像 iOS 8.3+ 一样出现问题
    猜你喜欢
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    • 2019-04-20
    • 2012-10-14
    • 1970-01-01
    • 2020-02-07
    • 2016-07-30
    • 1970-01-01
    相关资源
    最近更新 更多