状态栏显示隐藏

2017-05-22  本文已影响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之后又不建议用了,有警告,这就比较尴尬了

上一篇 下一篇

猜你喜欢

热点阅读