swift - 尝试更改 UIStatusBar 色调颜色
问题描述
我正在尝试更改UIStatusBar
特定的色调颜色UIViewController
。
这是我的代码:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
self.setNeedsStatusBarAppearanceUpdate()
}
什么都没有发生。
解决方案
在 UINavigationController 上,preferredStatusBarStyle 没有被调用,因为它的 topViewController 优先于 self。因此,要在 UINavigationController 上调用 preferredStatusBarStyle,您需要更改其 childViewControllerForStatusBarStyle。
为一个 UINavigationController 执行此操作:
class MyRootNavigationController: UINavigationController {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
override var childViewControllerForStatusBarStyle: UIViewController? {
return nil
}
}
推荐阅读
- oracle - Solaris Client 8.1.7 无法连接到 Oracle 12C R1
- javascript - Google Drive 未加载 pdf 链接
- php - 在 php 中显示的总和值
- sql - 在 table1 中选择值、Group By、Sum 的存储过程,然后将这些值插入到 table2 中
- ios - 如何将 dateFormatter 值(例如 2019 年 7 月 7 日)从时间戳转换为 2019 年 7 月 7 日?
- python - 在 Python Pygame 中调用对象和传递变量不工作错误说变量未定义
- html - 自举对齐输入字段
- javascript - 如何将变量 js 发布到 Django
- javascript - 从匿名函数返回值时遇到问题
- antlr4 - 我可以让我的 ANTLR4 Lexer 从输入流中丢弃一个字符吗?