个性化的产品。需要再不通的viewController中显示不同UIStatusBarStyle,在实现的时候,会发现会有很多问题。
在这里,博主给抛个砖。
首先 (代码都写在view Controller 中)
/**
* 修改状态栏样式
*
* @return
*/
- (UIStatusBarStyle)preferredStatusBarStyle{
return self.statusStyle;
}
这个是来改变 UIStatusBarStyle 的。但只在viewController 初始化的时候掉用。
但,我们可以发现当掉用 这个方法的时候,viewController 会重新掉用上面的方法。
[self setNeedsStatusBarAppearanceUpdate];
通过这两个方法,可以动态改变UIStatusBarStyle;
但如果把viewController 放到 navigationController 中,就会有点问题。凭博主的感觉,当viewcontroller 放到 navigationController 中。显示的StatusBar 就不再是viewController的了。而是navigatonController的。所以 这是候要想改变statusBar 的颜色的时候。就应该把上述两个方法。写到navigationController中。
这图怎么这么大啊。
如果你的工程的plist 文件是这个样子的。
那么恭喜你,以上方法都不好用,你需要用以下方法
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;