不少同学在开发过程中可能会遇到这种情况,有些页面可以调用preferredStatusBarStyle方法改变状态栏样式,有些则不可以。其根本原因是:
当视UIViewController处于UINavigationController中时,状态栏将由导航栏进行管理,所以此时在视图控制器中调用preferredStatusBarStyle时不再生效,需要通过UINavigationBar.barStyle属性来设置。另外,有一种情况,当视图控制器处于导航控制器中,如果导航栏被隐藏,此时可以通过调用preferredStatusBarStyle来设置状态栏样式。
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.barStyle = UIBarStyleDefault;