iOS 7 statusbar 需要知道的

最近在用sharesdk的过程遇到一个很奇怪问题:http://bbs.mob.com/thread-317-1-1.html
点分享按钮时,弹出modal view会把statusbar从白色改成黑色,几乎把http://stackoverflow.com/上关于statusbar的帖子都看完了,还是没有解决。
只能自己解决,从两方面入手
1、自己写个modal view,同样方式跳出,会不会把statusbar改变
2、和sharesdk的人确认,是否对navigationbar进行修改,把案列代码发给sharesdk

从上面帖子中,可以发现,自己写modal view没有改变statusbar,那就是sharesdk的问题?把sharesdk的demo拿下来一跑,奇怪了,尽量正常的,测底无解了?

sharesdk的开发同学联系我说,他们新建project后,把我发给他们代码import过去后,是没有问题的,但就是我发给们的project还是有问题。从这句话中,我发现有一点,那就是plist文件被新建了,在本地把原来project中的plist文件重建后,app果然正常了,但新的plist和老的plist没啥区别。

这里强调一下statusbar需要知道点:
1、plist中设置View controller-based status bar appearance = YES(默认就是为YES,VC控制statusbar隐藏与样式);preferredStatusBarStyle,可以让用户指定状态栏风格。但这个方法只有在ViewController不包含在UINavigationController中时才起作用。但我们在ViewController时一般都和UINavigationController一起使用。

-(UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

老外提供解决方法:http://mythodeia.wordpress.com/2014/05/09/view-controller-based-status-bar-appearance

2、View controller-based status bar appearance=NO(对整个应用statusbar做统一处理)
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];


Post a Comment