iOS8之前,直接通过下边代码设置隐藏和样式
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
[UIApplication sharedApplication].statusBarHidden = YES;
iOS8开始,对应的Xcode出了个选项,在target - info里边,添加key:View controller-based status bar appearance,这个是是否根据控制器控制导航栏的状态;设置为YES之后,就不可以使用[UIApplication sharedApplication]设置了,需要使用iOS8新增的函数,在controller里边写代理方法,下边两个方法设置;
- (UIStatusBarStyle)preferredStatusBarStyle
- (BOOL)prefersStatusBarHidden
有一些同学,接收老项目,不注意可能会发使用preferredStatusBarStyle设置不管用,是因为没有修改target - info里边的key:View controller-based status bar appearance为YES