关于xcode6升xcode7之后多window时,程序的状态栏管理问题

在iOS6到iOS8时,我们设置app的状态栏样式,一般把info.plist里面设置了View controller- based status bar appearance为NO,默认为YES,来应用程序来管理。这样的话多window时,并不会有影响状态栏的样式,因为状态栏是由应用UIApplication来管理。

到了iOS9之后,上面的配置就会就会报警告。对于一名看不得警告的程序员来说,这是很难受的。那么想要消除这些警告,就必须将View controller-based status bar appearance设置为YES(或删除这条配置,因为默认就为YES)。这样的话在单个window时不会出现问题,但是如果你的应用有多个window,且其它的window的显示级别比主window的级别高时就会出现问题。因为状态栏的管理默认是交给最上面那个window的根控制器来管理的。

那么该怎样来处理这个问题呢?

我用的方法比较笨,就是在其它window窗口中哪个控制器需要修改状态栏的状态就拿到最上面的那个window,然后替换掉它的根控制器(这个根控制器里已经设置了你希望的状态栏的样式),这样就相当于我们需要多套控制器来实现这个功能了。
上面的方法很笨但是我一直没找到合适的方法,如果哪位大神有更加合理的方法,希望及时的分享下,谢谢!

github地址:https://github.com/SilongLi

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容