iOS UIAlertController下preferredStatusBarStyle方法无效

前提条件

  • 当前控制器控制状态文字颜色
  • 在info.plist里面设置了View controller-based status bar appearance为YES
  • 在info.plist里面设置了Status bar style为UIStatusBarStyleLightContent模式
  • 在根导航控制器重载了下面方法
override var childViewControllerForStatusBarStyle: UIViewController?{
    return self.visibleViewController
}

问题
UIAlertControllerpresent控制器后状态栏变为default模式,如何修改状态栏的颜色为lightContent模式,如图

demo.png

UIAlertController扩展分类,重载preferredStatusBarStyle这个方法是无效的

extension UIAlertController{
    // 无效
    override open var preferredStatusBarStyle: UIStatusBarStyle{
        return .lightContent
    }
}

解决方法1
在根导航控制器中

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationBar.barStyle = .black
}

你可能感兴趣的:(iOS UIAlertController下preferredStatusBarStyle方法无效)