// 具体的控制器设置状态栏样式 override var preferredStatusBarStyle: UIStatusBarStyle{ return .lightContent } // 如果控制器被添加到导航控制器中,上段代码失效,需要在导航控制器中添加以下代码 // 导航控制器不再统一设置状态栏样式,交给具体的控制器设置,这样,具体控制器再设置状态栏样式 override var childViewControllerForStatusBarStyle: UIViewController?{ return topViewController } /**************************************************************/ // 以下代码是在导航控制器中的 // 导航控制器统一设置状态栏样式 override var preferredStatusBarStyle: UIStatusBarStyle{ return .lightContent } // 导航控制器不再统一设置状态栏样式,交给具体的控制器设置,设置了此属性,上面的属性失效 override var childViewControllerForStatusBarStyle: UIViewController?{ return topViewController } /**************************************************************/ // 如果导航控制器未声明交由具体控制器设置状态栏样式,且导航控制器和具体控制器都设置了状态栏样式,那么导航控制器的优先级比较高