使用 Swift 的导航控制器中的状态栏内容颜色不会更改为白色

问题描述

我使用 UINavigationController 创建导航流,第一个屏幕是列表视图控制器,第二个屏幕是列表项的详细视图控制器。

我在两个视图控制器中都隐藏了导航栏,因为我已经创建了自己的顶部栏。

现在我正在尝试将状态栏内容更改为浅色内容但是

override var preferredStatusBarStyle: UIStatusBarStyle{
   .lightContent
}

这不会被调用。我阅读了多个关于在使用 UINavigationController 时更改状态栏内容样式的答案,但没有一个有帮助,因为我隐藏了导航栏。

导航控制器嵌入在 TabBarController 中。

附上图片供参考 Image

解决方法

首先在viewDidLoad()中隐藏导航栏

self.navigationController?.navigationBarHidden = true

像你一样在ViewController中添加状态栏代码

override var preferredStatusBarStyle: UIStatusBarStyle{
   return .lightContent
}