天天看點

設定status bar字型顔色的優化方案

因為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的方式,設計的并不好。