ios9.0后出现两种状态栏设置方式.配置方法如下

1.info.plist文件中设置View controller-based status bar appearance 为 NO (必须) 此时使用以下方式配置

UIApplication.shared.statusBarStyle = .LightContent

 

2.info.plist文件中设置View controller-based status bar appearance 为 YES (必须,不配置则系统默认为YES) 此时对应的控制器中调用如下方法进行配置

 

override var preferredStatusBarStyle: UIStatusBarStyle {

        return .lightContent

    }

 

注意:

 

1.使用第2种方式时要注意如果当前控制器处理某个 UINavigationController 控制下时,控制权在 UINavigationController 上,直接在当前控制器中配置无效.

此时可自定义 UINavigationController 然后在文件中调用preferredStatusBarStyle函数.

 

2.调用 self.navigationController?.setNavigationBarHidden(true, animated: false) 隐藏导航栏时会导致状态的一些设置无效化

此时使用 self.navigationController?.navigationBar.isHidden = true 来隐藏导航栏,以避免此类情况出现