美文网首页开发常用
iOS 改变UIStatusBarStyle

iOS 改变UIStatusBarStyle

作者: 七里田间的守望者 | 来源:发表于2018-08-28 18:43 被阅读20次

一 全局修改 不更改info.plist

  • 这么去改

但是这么改的话全局都会变的 如果你想要在某一个特定的控制器里面改变的话 需要在控制器声明周期里面写

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
  • 在控制器里面改
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
}

当然一般我们不这么干,为什么?因为这么写的话容易出问题而且代码不易维护,然后看下面的方法

二 在当前控制器里面改

  • 在项目的Info.plist文件里设置UIViewControllerBasedStatusBarAppearance为YES
  • 在所要改状态的控制器的导航栏控制器里面加上下面代码
- (UIViewController *)childViewControllerForStatusBarStyle
{
   return self.topViewController;
}

然后在控制器里面写下如下代码 就可以达到只改当前控制器的UIStatusBarStyle了

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

相关文章

网友评论

    本文标题:iOS 改变UIStatusBarStyle

    本文链接:https://www.haomeiwen.com/subject/msiqwftx.html