自 Xcode 11.4 以来的状态栏样式问题
Posted
技术标签:
【中文标题】自 Xcode 11.4 以来的状态栏样式问题【英文标题】:Status Bar Style issues since Xcode 11.4 【发布时间】:2020-05-28 09:51:21 【问题描述】:由于 Xcode 11.4 覆盖 preferredStatusBarStyle
属性在某些情况下似乎不再起作用。
我们有一个UINavigationController
的扩展,我们基本上为每个 ViewController 覆盖它,但自 Xcode 11.4 起不再调用此属性。因此,大多数 ViewController 的状态栏都是黑色的。
extension UINavigationController
override open var preferredStatusBarStyle: UIStatusBarStyle
return .lightContent
对于我们再次覆盖preferredStatusBarStyle
的某些视图控制器,它也停止工作。该属性被访问,但是状态栏不会改变它的颜色。
View controller-based status bar appearance
在 info.plist 中设置为 YES
。
问题出现在模拟器和真实设备上。
有人也有这个问题吗?
【问题讨论】:
***.com/questions/38213286/… Jut 子类 NavigationController 然后覆盖使用!! 【参考方案1】:好的,我找到了解决方案。看起来我需要将 navigationBar 的 barStyle 设置为 .black
,如 here 所述
navigationController?.navigationBar.barStyle = .black
不知道为什么现在需要这样做。
那时就不再需要UINavigationController
扩展了。
【讨论】:
【参考方案2】:在此更改 appdelegate 中的 UIStatusBarStyle:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
return true
【讨论】:
以上是关于自 Xcode 11.4 以来的状态栏样式问题的主要内容,如果未能解决你的问题,请参考以下文章
自 IOS 13 以来,UISearchController 在状态栏中意外绘制 UITableView
Phonegap:动态显示和隐藏状态栏(iOS Xcode)