首页 > 解决方案 > preferredStatusBarStyle var 在 iOS12 中不起作用?

问题描述

添加

application.statusBarStyle = .lightContent

到我的 AppDelegate 的 didFinishLaunchingWithOptions 方法,也没有添加

override var preferredStatusBarStyle: UIStatusBarStyle {
    return UIStatusBarStyle.lightContent
}

到 VC 不再适用于 iOS12/Xcode10

有任何想法吗?

标签: xcode10ios12

解决方案


这与 iOS 12 无关。您只是规则错误。

在导航控制器的情况下,状态栏的颜色不是由视图控制器的preferredStatusBarStyle.

令人惊讶的是,它是由导航栏的barStyle. 要获得浅色状态栏文本,请说(在您的视图控制器中):

self.navigationController?.navigationBar.barStyle = .black

很难相信,但确实如此。几年前,我直接从 Apple 获得了这些信息。

您也可以在情节提要中执行此设置。

例子!导航栏的栏样式为.default

在此处输入图像描述

导航栏的栏样式为.black

在此处输入图像描述

iOS 13 的注意事项 只要您不使用大标题或 UIBarAppearance,这仍然适用于 iOS 13。但基本上你应该停止这样做,让状态栏颜色根据用户选择的浅色或深色模式自动进行。


推荐阅读