IOS7之前
//显示隐藏状态栏
[[UIApplicationsharedApplication] setStatusBarHidden:isHide];
//设置状态栏颜色
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
UIStatusBarStyleLightContent //白色
UIStatusBarStyleDefault //黑色
IOS7及以后
1、首先
//这个方法是写在BasenavigationController中
/**为了让该navgationController下的每一个VC都可以获得更改statusBar的权利*/
-(UIViewController *)childViewControllerForStatusBarStyle{
return self.topViewController;
}
2、然后在显示的View中
//下面方法是写在Viewcontroller中,重载父类方法
/**状态栏格式*/
-(UIStatusBarStyle)preferredStatusBarStyle{
switch (self.cqStatusBarType) {
case CQStatusTypeBlack:
{
return UIStatusBarStyleDefault;
}
break;
case CQStatusTypeWhite:
{
if (ISIOS7) {
return UIStatusBarStyleLightContent;
}else{
return UIStatusBarStyleBlackTranslucent;
}
}
break;
default:
break;
}
return UIStatusBarStyleDefault;
}
-(BOOL)prefersStatusBarHidden{
return NO;
}
注意 如果info.plist文件中 UIViewControllerBasedStatusBarAppearance == NO 的话以上无效,用iOS7之前的方法有用
//在当前Controller中需要更新状态时需要在主线程执行该方法
[[[[UIApplication sharedApplication] keyWindow] rootViewController] setNeedsStatusBarAppearanceUpdate];