iOS 修改状态栏preferredStatusBarStyle不执行问题

1、在老版本的iOS中,状态栏永远都是白色风格。而在iOS 7中,咱们能够修改每一个view controller中状态栏的外观。经过UIStatusBarStyle常量能够指定状态栏的内容是暗色或亮色。默认状况下,状态栏的显示是暗色。也就是说,状态栏上的时间、电池指示器和Wi-Fi信号显示为暗色。若是导航栏中使用暗色为背景,那么看起来的效果以下图所示:app

如上图这种状况下,咱们可能但愿将导航栏的风格修改成亮色。这里有两个方法能够实现。在iOS 7中,咱们能够在每一个view controller中overridingpreferredStatusBarStyle:方法,以下所示:3d

- (UIStatusBarStyle)preferredStatusBarStyle {     
    return UIStatusBarStyleLightContent; 
}

PS:此法的只有在设置了如下代码才会被调用(对于preferredStatusBarStyle不执行问题):code

[self.navigationController.navigationBar setBarStyle:UIBarStyleBlack];

上面代码的效果以下图所示:blog

2、在iOS 7中,经过上面的方法来修改状态栏风格很是的棒。另外,咱们也能够使用UIApplication的statusBarStyle方法来设置状态栏,不过,首先须要中止使用View controller-based status bar appearance。在project target的Info tab中,插入一个新的key,名字为View controller-based status bar appearance,并将其值设置为NO。get

而后就能够使用下面的代码来设置状态栏风格了:io

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
相关文章
相关标签/搜索