我在视图控制器中添加了以下方法,将状态栏图标的颜色更改为白色。

override func viewWillAppear(_ animated: Bool) {
    UIApplication.shared.statusBarStyle = .lightContent
    super.viewWillAppear(animated)
}
override var preferredStatusBarStyle : UIStatusBarStyle {
    return .lightContent
}

视图加载和图标按预期显示为白色,但经过明显延迟(最多10秒)。视图加载得很好,10秒后图标会弹出,通常是一个接一个的。
我在xcode中添加了断点,看到viewDidLoad在viewwill出现之前被调用,我相信它应该是相反的。这可能是问题所在吗?
我也试着加上
UIApplication.shared.statusBarStyle = .lightContent

进入viewDidLoad()方法,应用程序不受影响。

最佳答案

只需在super.viewWillAppear(animated)之后替换您编写的UIApplication.shared.statusBarStyle = .lightContent代码。

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    UIApplication.shared.statusBarStyle = .lightContent
}

override var preferredStatusBarStyle : UIStatusBarStyle {
    return .lightContent
}

10-08 03:33