如何在 MoreTabBarController 中将 UIStatusBar 颜色更改为 .lightContent

How do I change the UIStatusBar color to .lightContent in the MoreTabBarController

我有一个 UITabBarController 超过 5 UIViewControllers。我已经在 info.plist 中设置了值 我已经将基于 ViewController 的状态栏外观的值设置为 YES.

所有 UIViewController 都有值

UIApplication.shared.statusBarUIView?.backgroundColor = customColor
self.setNeedsStatusBarAppearanceUpdate()

在 viewDidLoad 中,自定义颜色为深蓝色。我还覆盖了 preferredStatusBarStyle 变量以点亮内容。

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

所有 UIViewController 都显示 lightContent 状态栏。我在 MoreTabBarController class 中尝试过相同的方法,但它不起作用。我假设原因是因为它不是 UIViewController 而是 UITabBarController。

如何在 MoreTabBarController 中将状态栏颜色更改为浅色内容?

使用UIApplication.shared.statusBarStyle = .lightContent 在 didFinishLaunchingWithOptions 然后 使用 View controller-based status bar appearance 键并在 .info plist 中为其布尔值设置 No。 它将状态栏颜色更改为浅色内容。

打开项目设置选项可以更改状态栏的样式:

接下来,返回故事板,Select ViewController 并在编辑器菜单中 Select 嵌入 NavigationController。 Select 导航栏并在属性检查器中将栏色调设置为红色。 Build and 运行 项目,状态栏的内容又变黑了,这是默认的。原因是,iOS 要求导航控制器状态栏的样式,而不是包含的 ViewController。 要更改应用内所有导航控制器的样式,请更改 AppDelegate.swift 文件中的以下方法。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    UINavigationBar.appearance().barStyle = .blackOpaque
    return true
    }