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

时间:2019-10-24 09:33:49

标签: ios swift uitabbarcontroller uistatusbar

我有一个UITabBarController,其中有5个以上的UIViewControllers。我已将info.plist中的值设置为基于ViewController的状态栏外观为YES

enter image description here

所有UIViewController都有值

UIApplication.shared.statusBarUIView?.backgroundColor = customColor
self.setNeedsStatusBarAppearanceUpdate()
在viewDidLoad中的

,其中customColor是深蓝色。我还覆盖了preferredStatusBarStyle变量以简化内容。

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

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

enter image description here

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

enter image description here

接下来,返回情节提要,选择ViewController,然后在编辑器菜单中选择Embedin NavigationController。选择导航栏,然后在“属性检查器”中将“栏色调”颜色设置为红色。 生成并运行项目,状态栏的内容再次变暗,这是默认设置。原因是,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
    }