iOS开发中的错误整理,iOS9以后的UIWindow(TopWindow)以及UIWindow与statusBar的关系
iOS9以后的UIWindow的问题(TopWindow),以及UIWindow与statusBar之间的联系
1.出现的问题
- iOS9以后UIWindow必需要指定一个根控制器,否则会报错!iOS9以前只是警告
- 当建立了window,指定了根控制器以后.在别的控制器设置statusBar的样式和颜色没有效果.由于
statusBar的样式和颜色是由位于最顶端的UIWindow的控制器决定的!
2.问题解决
- 将topWindow实现为单例模式(这里简单实现,完整的单例模式请参考以前的整理),为了之后不管在哪里均可以拿到topWindow

- 对外界提供两个属性,一个决定statusBar的样式,另外一个决定statusBase的显示与隐藏

- 重写这两个属性的setter,只要外界赋值,就执行
[self setNeedsStatusBarAppearanceUpdate];
,不要直接调用prefersStatusBarHidden方法等,没用

- 重写设置statusBase的两个方法,返回外界给的值

欢迎关注本站公众号,获取更多信息