一、状态栏的显示与隐藏(iOS9之后,控制器之间的状态栏不会相互影响):

1、在info.plist里面添加

<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>

2、在控制器里面定义一个属性

@property (nonatomic, assign) BOOL statusBarHidden;

3、重写状态栏的一个方法

- (BOOL)prefersStatusBarHidden {

	return self.statusBarHidden;
}

4、刷新状态栏的隐藏与显示

self.statusBarHidden = YES/NO;
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];

二、状态栏样式(iOS9之后,控制器之间的状态栏不会相互影响):

1、在info.plist里面添加

<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>

2、在控制器里面定义一个属性

@property (nonatomic, assign) NSInteger statusBarStyle;

3、重写状态栏样式的一个方法

- (UIStatusBarStyle)preferredStatusBarStyle {
	
	return self.statusBarStyle;
}

4、刷新状态栏的隐藏与显示

self.statusBarStyle = UIStatusBarStyleDefault/UIStatusBarStyleLightContent;
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];

三、全局设置状态栏文本颜色为白色(iOS9之后):

1、在info.plist添加

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

2、修改状态栏Style为Light,如下图:
iOS状态栏
3、如果需要修改状态栏的背景颜色,在AppDelegate添加如下代码并调用

- (void)setStatusBarBackgroundColor:(UIColor *)color {
    
	UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
    if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
        statusBar.backgroundColor = color;
    }
}

相关文章: