产品要实现状态栏字体颜色,不同页面显示不同的颜色,要实现这个需求其实很简单,只不过由于自己之前没做过,所以绕了一些弯路,UIStatusBarStyle有如下几个枚举值
UIStatusBarStyleDefault 默认值是黑色
UIStatusBarStyleLightContent 白色
首先由于根视图是navgationController,于是我在根视图重写了如下几个方法:
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}、
//状态栏显示最上面一次控制器所需要的颜色
-(UIViewController *)childViewControllerForStatusBarStyle{
return self.topViewController;
}
// 是否隐藏状态栏
- (BOOL)prefersStatusBarHidden
{
return NO;
}
通过这样的设置,就使得状态栏字体颜色为白色了,但是要使得里面的子视图颜色改变,则需要在子视图里面也加上如下这个方法,原因我就不多加赘述了
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleDefault;
}