关于iOS端StatusBar的隐藏问题
-好多同学不可避免遇到偶尔需要隐藏StatusBar或者操作StatusBar的问题
下面介绍个人的一种写法, 当然网上写法很多, 这个只是作为一个参考
前提: 这种写法推荐程序架构为统一基类Controller的方式, 由于要精确控制StatusBar的显示与隐藏, 文件太多且架构不是很明确的话修改十分麻烦
·首先设置INFOPlist中的
View controller-based status bar appearance –> BOOL 为 YES
·然后在需要操作的控制器中设置一个BOOL属性
//状态栏显示
@property (nonatomic, assign) BOOL statusBarShouldHidden;
接着需要在此控制器的周期方法中操作
#pragma mark - 生命周期
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
//改变Flag
self.statusBarShouldHidden = YES;
[self setNeedsStatusBarAppearanceUpdate];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
//改变Flag
self.statusBarShouldHidden = NO;
[self setNeedsStatusBarAppearanceUpdate];
}
最后由于[self setNeedsStatusBarAppearanceUpdate];
会调用API “prefersStatusBarHidden”所以在API中操作
- (BOOL)prefersStatusBarHidden {
if (_statusBarShouldHidden) {
return YES;
} else {
return NO;
}
}
就比较方便了
目前一直在采用这个方法, 希望大家有更好更优秀的方法可以一起交流