iOS改变状态栏文字颜色

iOS改变状态栏文字颜色

UINavigationController不会将 preferredStatusBarStyle 方法调用转给它的子视图,而是由它 自己管理状态 ,而且它也应该那样做.因为 UINavigationController 包含了它自己的状态栏因此就算 UINavigationController 中的 viewController 实现了 preferredStatusBarStyle 方法 也不会调用那 UINavigationController 是怎么决定 该返回 UIStatusBarStyleLightContent 还是 UIStatusBarStyleDefault 的呢? 它是基于它的 UINavigationBar.barStyle 属性.默认 (UIBarStyleDefault) 的是 黑色 文本的状态栏 而 UIBarStyleBlack 是设置为 白色 文本的状态栏。

可以在自定义的导航控制器中或者系统导航控制器中的类别中添加代码

-(UIStatusBarStyle)preferredStatusBarStyle
{
    return self.topViewController.preferredStatusBarStyle;
}

比如有这样的一个需求,默认大多数界面的状态栏文本颜色为白色,个别为黑色,可以为项目中自定义的父控制器或者UIViewController的类别中添加代码

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

在需要的改变的个别页面中添加代码

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

注意:info里面如果你加了View controller-based status bar appearance,设置为YES,如果设置为NO,上面的代码没效果

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 有三种可以修改状态栏颜色的方法,以下一一介绍。 方法一:先修改info.plist属性,再在需要的地方调用代码。注...
    1xd阅读 4,174评论 0 0
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,040评论 3 119
  • 激动人心、精彩纷呈的文艺汇演后,我们的三下乡活动还没有结束。今天早上我们决定各班在班主任的组织下举行告别班会,总结...
    萤梦社会实践队阅读 773评论 0 0
  • 减肥真的好暴力啊 不吃饭饿的想打别人 吃完饭又想打自己
    女王殿下1884阅读 1,001评论 1 0
  • 旅游(一) 青山次第来为留, 一派风光尽处收。 远村欲衔虚霩色, 影落人家云如流。 旅游(二) 豁然方觉云靉靆, ...
    风绡绛蜡露浥红莲阅读 2,642评论 0 3