美文网首页
状态栏显示隐藏

状态栏显示隐藏

作者: 杨大虾 | 来源:发表于2017-05-22 00:11 被阅读30次

    参考:
    StatusBar状态栏的隐藏实现

    经过笔者测试,不用写

    step1://在试图将要已将出现的方法中
    - (void)viewDidAppear:(BOOL)animated{
    
        [super viewDidAppear:animated];
    
        if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
    
            //调用隐藏方法
            [self prefersStatusBarHidden];
    
            [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
    
        }
    
    }
    
    step2://实现隐藏方法
    - (BOOL)prefersStatusBarHidden{
    
        return YES;
    }
    

    那么多

    
    - (BOOL)prefersStatusBarHidden{
    
        return YES;
    }
    //该方法貌似是系统方法,
    

    打个断点,发现一进这个viewController上面这个方法就会自动会触发,换言之,貌似step1不用写,并且这个设置仅针对该viewController(局部)
    当然是在info.plist文件中,View controller-based status bar appearance项设为YES(全局)的基础上

    因为这时View controller对status bar的设置优先级(反正就是优先级的问题)高于application的设置。

    为NO则以application的设置为准,view controller的prefersStatusBarHidden方法无效,是根本不会被调用的。

    另外我想说的是
    假如现在就是要View controller-based status bar appearance项设为NO,
    那么按理来说
    要通过application来设置吧

    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];

    但是这方法ios9之后又不建议用了,有警告,这就比较尴尬了

    相关文章

      网友评论

          本文标题:状态栏显示隐藏

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