因為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];
}
這個作法實際和iOS6是一樣的了,此處覺得iOS7中Stautus設定style的方式,設計的并不好。