关于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的根控制器来管理的。

升级Xcode6到Xcode7后,在iOS9中设置状态栏出现警告。为消除警告,需将View controller-based status bar appearance设为YES。这导致多窗口应用中,状态栏由最高层级window的根控制器管理,带来问题。解决方案包括使用通知传递参数或采用单例模式管理状态栏。推荐使用单例方法,因为topWindow作为单例,能方便地控制状态栏颜色和隐藏。
最低0.47元/天 解锁文章
7070

被折叠的 条评论
为什么被折叠?



