可以設(shè)置的地方有兩個:plist設(shè)置里面 和 程序代碼里
一.View controller-based status bar appearance設(shè)置為YES休里,則[UIApplication sharedApplication].statusBarStyle 無效掠抬。可以使用下面3個方法修改
- (UIStatusBarStyle)preferredStatusBarStyle;
- (UIViewController *)childViewControllerForStatusBarStyle;
- (void)setNeedsStatusBarAppearanceUpdate
- 在vc中重寫preferredStatusBarStyle方法杠步。
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleDefault;
}
2.在viewDidload中調(diào)用:[self setNeedsStatusBarAppearanceUpdate];
在NavigationController里上面的方法沒有用曼追,只會調(diào)用navigation controller中的preferredStatusBarStyle方法
可通過自定義一個nav類押赊。重寫他的preferredStatusBarStyle方法
- (UIStatusBarStyle)preferredStatusBarStyle {
return self.topViewController.preferredStatusBarStyle;
}
二.在info.plist中抠刺,View controller-based status bar appearance 設(shè)為 NO,這時application的設(shè)置優(yōu)先級最高,
狀態(tài)欄字體顏色由下面屬性設(shè)置
[UIApplication sharedApplication].statusBarStyle
*iOS9以后api說明
// Setting the statusBarStyle does nothing if your application is using the default UIViewController-based status bar system.
@property(readwrite, nonatomic) UIStatusBarStyle statusBarStyle NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController preferredStatusBarStyle]");
- (void)setStatusBarStyle:(UIStatusBarStyle)statusBarStyle animated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController preferredStatusBarStyle]");