zoukankan      html  css  js  c++  java
  • 关于在ios7之后改变状态栏颜色

    看到网上都说 在ios7之后要这样设置

    首先,须要在Info.plist配置文件里,添加键:UIViewControllerBasedStatusBarAppearance,并设置为YES;

    然后,在UIViewController子类中实现下面两个方法:

    - (UIStatusBarStyle)preferredStatusBarStyle
    {
        return UIStatusBarStyleLightContent;
    }
    
    - (BOOL)prefersStatusBarHidden
    {
        return NO;
    }
    最后,在须要刷新状态栏样式的时候,调用[self setNeedsStatusBarAppearanceUpdate]方法就可以刷新
    
    注意:
    [self setNeedsStatusBarAppearanceUpdate]在push  或者 present 的controller里面调用才起作用。

    奇怪的是  我这样设置之后 仅仅有在登录界面实用  界面登录跳转之后(正确的说 应该是还没跳转的时候 网络请求数据之后 状态栏的颜色就变为黑色了。而且在下个界面怎么设置都没用、或许是由于我登录界面是present过去或者什么原因吧,先不讨论这个)颜色就变回去了,不知道是这种方法有问题,还是我代码有问题。

    然后我找了一个在我的project中可用的。稍微改动,由于我刚进界面会有张全屏图

    调用setStatusBarStyle  不论什么iOS版本号可用

    plist文件里

    代码中
        if (IsIOS7Later) {
            [[UIApplication sharedApplication] setStatusBarHidden:NO];
            [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
        }

    并且 我还发现  ios6.0下。登录的界面没有状态栏了。。

    (登录界面不是navg)仅仅好

        if (!IsIOS7Later) {

            [UIApplication sharedApplication].statusBarHidden = NO;

        }

    。。


    哎 详细为什么
    - (UIStatusBarStyle)preferredStatusBarStyle
    这种方法在另外一个界面就不行了  还是以后再研究吧 预计是我代码问题。

    
    
    
    


  • 相关阅读:
    Linux 命令
    oracle sqlplus链接和sid
    sql 应用记录
    数据库接口基础类 oracle,sql server
    oracle 触发器
    js json -> <-object
    Docker学习总结(三)--常用命令
    MySQL之binlog日志
    Redis学习总结(九)-- Redis常用技巧
    Redis学习总结(八)--Redis云平台
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5092198.html
Copyright © 2011-2022 走看看