iOS开发中奇葩BUG分析记录

记录项目开发过程中遇到的各种奇奇怪怪的问题

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有问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容