iOS-设置某些页面的状态栏样式
2017-05-23 21:18
357 查看
全局页面状态栏样式白色Light
之前项目中是全局的白色状态栏样式,可以在 plist文件中添加以下选项,然后在Base控制器中写一句代码就可以实现全局状态栏白色的状态。[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
部分页面状态栏样式白色Light
iOS 7之后, UIViewController有了一个新的方法:- preferredStatusBarStyle,可以让用户指定状态栏风格。但是我试了一下,却不起作用。后来才知道原因:这个方法只有在ViewController不包含在UINavigationController中时才起作用。大部分情况下,ViewController不会单独使用,一般都会嵌套在UINavigationController中的。
所以可以写一个UINavigationController的扩展,覆盖其默认实现,返回最上面的ViewController的preferredStatusBarStyle。
OC
//UINavigationController+StatusBar.h #import <UIKit/UIKit.h> @interface UINavigationController (StatusBar) - (UIStatusBarStyle)preferredStatusBarStyle; @end //UINavigationController+StatusBar.m #import "UINavigationController+StatusBar.h" @implementation UINavigationController (StatusBar) - (UIStatusBarStyle)preferredStatusBarStyle { return [[self topViewController] preferredStatusBarStyle]; } @end
swift
extension UINavigationController { override public func preferredStatusBarStyle() -> UIStatusBarStyle { return self.topViewController.preferredStatusBarStyle() } }
然后哪需要哪引入UINavigationController+StatusBar.h头文件,此时preferredStatusBarStyle就起作用了。如果你用Swift,增加了extension就完成了。
参考地址
相关文章推荐
- 每个页面通用的CSS:global.css 对某些标签进行初始化样式设置 加些特定的margin值 等
- [iOS]设置页面跳转的样式
- IOS设置状态栏样式和背景
- 每个页面通用的CSS:global.css 对某些标签进行初始化样式设置 加些特定的margin值 等
- iOS 7设置状态栏样式
- iOS设置状态栏样式,statusBarStyle
- iOS设置状态栏样式,显示控制,statusBarStyle, statusBar
- IOS 设置ipone状态栏的样式
- iOS统一设置状态栏的样式,交给代理AppDelegate
- iOS设置状态栏样式,statusBarStyle
- iOS状态栏设置样式
- iOS平台设置系统状态栏(通知栏、顶部状态栏)样式背景颜色或透明
- 二十一,iOS app图标数字,状态栏样式等设置
- iOS开发之设置状态栏样式
- ios设置状态栏隐藏和样式
- UI_iOS应用状态栏样式设置_及导航栏(NavigationBar)透明
- iOS开发 设置状态栏样式
- iOS设置状态栏样式,statusBarStyle
- iOS 7设置状态栏不透明
- 设置IOS中状态栏的状态