不能覆盖 preferredStatusBarStyle

问题描述

深色模式下,状态栏会因颜色变深而消失。

添加了:

 override var preferredStatusBarStyle: UIStatusBarStyle {
            return .lightContent
        }

但问题是,当我在 "viewDidLoad"添加方法时,出现错误

override 只能在类成员中指定

知道如何解决这个问题吗?

解决方法

preferredStatusBarStyleUIViewController 类的成员。您在这里要做的是覆盖这个类成员。您问题中的代码段与 viewDidLoad 方法无关,应该像这样放置在您的子类主体中:

class YourViewController: UIViewController {
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}
,

我将在这里回答这个问题,也许它可以帮助其他人:

在检查我的代码几个小时后,我发现我有 rootViewController 用作身份验证然后在身份验证用户传递给 TabbarViewController 之后...这不是 rootViewController,我添加了:

首选状态栏样式

到我的 rootViewController 并且它可以工作。

基于视图控制器的状态栏外观应该是 是