需求:APP 启动时隐藏状态栏,启动图全屏,进入程序后显示状态栏

一、启动时隐藏状态栏

在项目的 info.Plist 文件中添加一项:Status bar is initially hidden,Value 设置为:YES

OK,在APP启动时,状态栏就隐藏了。接下来我们要做的就是在启动后,显示状态栏。

二、启动后显示状态栏

在 info.plist 文件中,添加一项 View controller-based status bar appearance ,Value 设为 YES,意思就是 Status bar 由各自的ViewController控制。

如果在项目中使用过这几个控制器,分别继承,重写方法。

2.1 分栏控制器

继承于 UITabBarController 创建视图,然后重写以下两个方法:

1
2
3
4
5
6
7
- (UIViewController *)childViewControllerForStatusBarStyle {
return self.selectedViewController;
}
- (UIViewController *)childViewControllerForStatusBarHidden {
return self.selectedViewController;
}

2.2 导航栏控制器

继承于 UINavigationController 创建视图,然后重写以下两个方法:

1
2
3
4
5
6
7
- (UIViewController *)childViewControllerForStatusBarStyle{
return self.topViewController;
}
- (UIViewController *)childViewControllerForStatusBarHidden {
return self.topViewController;
}

2.3 视图控制器

继承于 UIViewController 创建一个 基类视图控制器 BaseViewController,然后重写以下两个方法:

1
2
3
4
5
6
7
- (BOOL)prefersStatusBarHidden{
return NO;
}
- (UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}

BaseViewController 中可以添加一些常用的属性、方法。在项目开发中,我们的视图控制器都可以继承于 BaseViewController。