状态栏显示隐藏
2017-05-22 本文已影响30人
杨大虾
经过笔者测试,不用写
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之后又不建议用了,有警告,这就比较尴尬了