在 Swift 中管理 statusBarStyle 的正确方法是什么?

What is the correct way to manage statusBarStyle in Swift?

我尝试在 info.plist 文件中将键 UIViewControllerBasedStatusBarAppearance 添加到 true 中,然后在 UINavigationController class 中添加以下代码,其中包含多个 UIViewController classes.

class HomeNavigationController: UINavigationController {

    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
}

但是,它没有用。

我也尝试过将 navigationBarbarStyle 属性 设置为 .black 但这也没有用。

也关注了 ,但这也没有帮助。

请注意:对于未嵌入任何 UINavigationController 中的 UIViewController class,如果我使用计算 属性 preferredStatusBarStyle,则它可以工作。

@Anuranjan Bose 在您的视图加载时尝试此操作,

override func viewDidLoad() {
    super.viewDidLoad()
    setNeedsStatusBarAppearanceUpdate()
}

viewDidAppear() 中尝试 UINavigationController class:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    navigationController?.navigationBar.barStyle = .black
}

同时添加(与上面相同的class):

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}