新增中

application.statusBarStyle = .lightContent

到我的AppDelegate的didFinishLaunchingWithOptions方法,也没有添加
override var preferredStatusBarStyle: UIStatusBarStyle {
    return UIStatusBarStyle.lightContent
}

VC不再适用于iOS12 / Xcode10

有任何想法吗?

最佳答案

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

在导航 Controller 情况下,状态栏的颜色不是由 View Controller 的preferredStatusBarStyle决定的。

令人惊奇的是,它是由导航栏的barStyle确定的。要获取灯光状态栏文本,请说(在 View Controller 中):

self.navigationController?.navigationBar.barStyle = .black

难以置信,但却是事实。多年前,我直接从Apple获得此信息。

您也可以在 Storyboard 中执行此设置。

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

xcode10 - preferredStatusBarStyle var在iOS12中不起作用?-LMLPHP

导航栏的栏样式为.black:

xcode10 - preferredStatusBarStyle var在iOS12中不起作用?-LMLPHP

iOS 13的注意,只要您不使用大标题或UIBarAppearance,它在iOS 13中仍然有效。但基本上,您应该停止这样做,并根据用户选择的亮或暗模式让状态栏颜色自动显示。

10-08 06:09
查看更多