因为View controller-based status bar appearance 设为YES 后,
如果vc属于Nav,VC状态栏的设置就被nav截获了,不能直接控制。所以这种方式不好用。
优化的解决方案是:
View controller-based status bar appearance 设为NO,
在每个vc中用:
[UIApplication sharedApplication].statusBarStyle
设置状态栏字体的颜色。
如下,在重设状态栏前,先把原来的设置记下来,在vc消失时再设回去。
@property (nonatomic, assign) UIStatusBarStyle previousStatusBarStyle;
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.previousStatusBarStyle = [UIApplication sharedApplication].statusBarStyle;
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[[UIApplication sharedApplication] setStatusBarStyle:self.previousStatusBarStyle animated:YES];
如果vc属于Nav,VC状态栏的设置就被nav截获了,不能直接控制。所以这种方式不好用。
优化的解决方案是:
View controller-based status bar appearance 设为NO,
在每个vc中用:
[UIApplication sharedApplication].statusBarStyle
设置状态栏字体的颜色。
如下,在重设状态栏前,先把原来的设置记下来,在vc消失时再设回去。
@property (nonatomic, assign) UIStatusBarStyle previousStatusBarStyle;
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.previousStatusBarStyle = [UIApplication sharedApplication].statusBarStyle;
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[[UIApplication sharedApplication] setStatusBarStyle:self.previousStatusBarStyle animated:YES];
}
这个作法实际和iOS6是一样的了,此处觉得iOS7中Stautus设置style的方式,设计的并不好。