首页 > 解决方案 > 在swift中覆盖系统UI样式时如何更改默认状态栏颜色

问题描述

当我将 overrideUserInterfaceStyle 覆盖为明暗模式设置为 on 时,在设备上,它不会将状态栏样式更改为 .lightcontent。

                    overrideUserInterfaceStyle = .light
                    self.navigationController?.navigationBar.largeTitleTextAttributes = [.foregroundColor: UIColor.black]
                    self.navigationController?.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.black]
                    self.navigationController?.navigationBar.barStyle = .default
                    self.setNeedsStatusBarAppearanceUpdate()

那是我覆盖界面样式的代码。当我这样做时,状态栏将保留深色内容。

标签: swiftxcodeios13ios-darkmode

解决方案


如果您的内容在 a 内UINavigationController,您将不会得到您所期望的。您必须继承UINavigationController其内容并提升该视图控制器的覆盖值。

请参阅此线程以获得一些答案:preferredStatusBarStyle 未被调用


推荐阅读