IOS状态栏样式修改
Categories:
IOS
以前的状态栏样式修改很简单:
UIApplication.shared.statusBarStyle = .lightContent
把这句话写在 AppDelegate
里面就是全局的配置。如果你需要某一个单独的ViewController特殊处理就在这个ViewController里面再写一下这句话就行。
但是IOS9以后就提示这种方式要被废弃了。 新的方式也简单,直接在xcode上选一下就好了: 如果需要对某一个ViewController特殊处理,在这个ViewController里面复写下面的方法就行:
override var preferredStatusBarStyle: UIStatusBarStyle {
return UIStatusBarStyle.default
}
有个特殊情况,这样写了不生效。就是你这个ViewController是UINavigationController或者UITabBarController的子View。那系统其实是读取了这个UINavigationController或者UITabBarController的preferredStatusBarStyle了,所以你写了这个没有生效,这时候你需要多复写另外两个方法:
// 复写这两个方法
override var childForStatusBarHidden: UIViewController? {
return self.navigationController?.topViewController
}
override var childForStatusBarStyle: UIViewController? {
return self.navigationController?.topViewController
}
The End !
#Blog