ios - 如何在 MoreTabBarController 中将 UIStatusBar 颜色更改为 .lightContent
问题描述
我有一个UITabBarController
超过 5 个UIViewControllers
。我已将值设置为info.plist
我已将ViewController
基于状态栏外观的值设置为YES
.
所有的 UIViewControllers 都有值
UIApplication.shared.statusBarUIView?.backgroundColor = customColor
self.setNeedsStatusBarAppearanceUpdate()
在 viewDidLoad 中,customColor 是深蓝色。我还覆盖了preferredStatusBarStyle 变量以显示内容。
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
所有 UIViewController 都显示 lightContent 状态栏。我在 MoreTabBarController 类中尝试过相同的方法,但它不起作用。我假设原因是因为它不是 UIViewController 而是 UITabBarController。
如何将状态栏颜色更改为 MoreTabBarController 中的浅色内容?
解决方案
打开项目设置选项,您可以更改状态栏的样式:
接下来,回到 Storyboard,选择ViewController
并在 Editor 菜单中选择 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
}
推荐阅读
- dataframe - 数据帧/数据集如何编译成 RDD?
- angular - NgRx npm 包发生了什么?
- javascript - 用于图形(javascript)的 Echart.js 库不使用 xaxis 类型在页面上显示数据是时间
- hibernate - Spring-data CrudRepository 有时会获取具有许多重复连接实体的实体(渴望)
- javascript - 如何仅使用 JavaScript 关闭单击锚点的侧边栏?
- python-3.x - Flask 部署到 AWS 获得权限 errno 13
- java - arraylist 有问题,if 语句有什么作用?
- windows - 键盘模拟使用什么语言?
- kotlin - 当我处理 Mono 和 Flux 时,如何避免在 kotlin 中使用非空断言 (!!)
- javascript - 将会员 ID 链接到 woocommerce 订单详细信息管理页面