无法覆盖 preferredStatusBarStyle

Can not override the preferredStatusBarStyle

在深色模式下,状态栏消失导致颜色变深。

我添加了:

 override var preferredStatusBarStyle: UIStatusBarStyle {
            return .lightContent
        }

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

override can only be specified in class member

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

preferredStatusBarStyleUIViewController class 的成员。您在这里要做的是覆盖此 class 成员。你问题中的片段与 viewDidLoad 方法无关,应该像这样放在你的 subclass 正文中:

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

我要在这里回答这个问题,也许它可以帮助别人:

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

preferredStatusBarStyle

到我的 rootViewController 并且它有效。

View controller-based status bar appearance should be YES