首页 > 解决方案 > 尝试更改 UIStatusBar 色调颜色

问题描述

我正在尝试更改UIStatusBar特定的色调颜色UIViewController

这是我的代码:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(true)

    self.setNeedsStatusBarAppearanceUpdate()

}

什么都没有发生。

标签: swiftuistatusbar

解决方案


在 UINavigationController 上,preferredStatusBarStyle 没有被调用,因为它的 topViewController 优先于 self。因此,要在 UINavigationController 上调用 preferredStatusBarStyle,您需要更改其 childViewControllerForStatusBarStyle。

为一个 UINavigationController 执行此操作:

class MyRootNavigationController: UINavigationController {
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
    override var childViewControllerForStatusBarStyle: UIViewController? {
        return nil
    }
}

推荐阅读