状态栏和导航栏根据不同ViewController改变
首先在info.plist设置View controller-based status bar appearance 为NO 这样状态栏就是由UIApplication 单例统一控制
//在这个控制器,状态栏是白色,并且隐藏导航栏
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];//白色状态栏
self.navigationController.navigationBar.hidden = YES;
//每次界面出现 刷新数据
[self requestData];
}
//离开这个控制器,状态栏恢复黑色,并且导航栏显示出来
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];//黑色状态栏
self.navigationController.navigationBar.hidden = NO;
}
//在当前控制器 导航栏用白色
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController.navigationBar setShadowImage:[UIImage imageWithColor:kColor_White]];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:kColor_White] forBarMetrics:UIBarMetricsDefault];
}
//离开当前控制器 导航栏恢复 统一风格颜色
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.navigationController.navigationBar setShadowImage:[UIImage imageWithColor:kColor_NavBar]];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:kColor_NavBar] forBarMetrics:UIBarMetricsDefault];
}