记录项目开发过程中遇到的各种奇奇怪怪的问题
1. 修改状态栏失效
2023-09-28 09:58:11
iOS 9
以后设置状态栏分两步
-
info.plist
文件添加键值View controller-based status bar appearance
,设为YES
-
UIViewController
实现preferredStatusBarStyle
方法
- (UIStatusBarStyle)preferredStatusBarStyle {
if (@available(iOS 13.0, *)) {
return UIStatusBarStyleDarkContent;
}
return UIStatusBarStyleDefault;
}
正常情况下,在页面viewWillAppear
执行前,会执行preferredStatusBarStyle
,或主动调用setNeedsStatusBarAppearanceUpdate
更新。
这次遇到一种情况是无论如何都不会指定基类中的preferredStatusBarStyle
,这就很让人怀疑人生了,因为就这简单的两步,也不需要其他配置。问题出在哪?无从下手,只能从代码层面排查了。
最终啊,在一个子view
中发现懒加载了一个新window
用于弹框时做基视图。。。。。。由于这个新建的window
在最上层,导致了系统以该window
为参考展示样式,最终移除该window
便好了。
查看代码记录发现是iOS 13
时也是为了解决修改状态栏不生效问题,使用iOS 15
验证正常,iOS 16/17
有问题。