网上还多人云亦云的什么在plist文件里面改属性,然后在项目启动的时候设置
[application setStatusBarStyle:UIStatusBarStyleLightContent animated:NO]
但是我们会发现,这种方法太死板了。而且在iOS9之后,这个方法就已经被苹果粑粑废弃了,推荐使用的是这么一个方法
- (UIStatusBarStyle)preferredStatusBarStyle{ }
这里我总结了一个小技巧,就是直接给UINavigationController 写一个分类方法在这个分类里面重写
- (UIStatusBarStyle)preferredStatusBarStyle{ } 这个方法,如果你需要默认颜色是黑色这里就返回
UIStatusBarStyleDefault,反之要白色的话就返回UIStatusBarStyleLightContent
当然项目中肯定不全是黑色状态栏或者白色状态栏,那么就需要你在你需要改变的界面直接重写这个方法即可
如果你在某一个界面需要有不同颜色,那么在那个界面重写最后一个方法就ok啦。这样是不是很简单呢。
这样比之前iOS9之前什么viewWillAppear 和viewWillDissAppear 反复设置简单快捷!
系统默认状态栏字体颜色为黑色,那么如何改成白色呢?a.需要设置View controller-based status bar appearance为NO,
b.设置status bar style 为UIStatusBarStyleLightContent。
a.需要设置View controller-based status bar appearance为YES,系统默认为YES可不设置
设置status bar style 为UIStatusBarStyleDefault,系统默认为default可不设置
b.自定义一个基类导航控制器重写preferredStatusBarStyle方法
导航控制器.m文件
iOS提供了preferredStatusBarStyle方法给控制器来控制状态栏的颜色,但是由于导航控制器的存在,直接在控制器中写这个方法是不会执行的,因此需要在导航控制器中重写这个方法,让导航控制器的栈顶控制器来执行这个方法。
c.在需要设置的控制器中添加preferredStatusBarStyle方法
控制器.m文件,用上面的基类导航控制器包含这个控制器
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)