iOS设置statusBarStyle为lightContent出现弃用告警如何解决
解决方案
告警翻译
statusBarStyle在iOS 13.0中已被弃用:请使用窗口场景(window scene)的statusBarManager属性替代。
修复方法
你可以根据自己的业务需求选以下任意一种方案处理:
- 方案1:全局设置状态栏样式(适配全版本)
if #available(iOS 13.0, *) { // 筛选当前活跃的window场景,多场景App可自行调整筛选逻辑 guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene, let statusBarManager = windowScene.statusBarManager else { return } statusBarManager.setStatusBarStyle(.lightContent, animated: false) } else { UIApplication.shared.statusBarStyle = .lightContent }
- 方案2:单页面单独控制状态栏样式(无版本兼容问题)
在需要设置状态栏样式的ViewController中重写对应属性即可,不会触发弃用告警:
override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent } // 需要更新样式时调用以下方法触发刷新 setNeedsStatusBarAppearanceUpdate()
内容的提问来源于stack exchange,提问作者kiran
相关产品推荐
相关产品推荐

