状态栏显示隐藏

参考:
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之后又不建议用了,有警告,这就比较尴尬了

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

推荐阅读更多精彩内容