美文网首页iOS 问答集合
iOS UIAlertController下preferredS

iOS UIAlertController下preferredS

作者: 船长_ | 来源:发表于2018-04-21 10:32 被阅读54次

前提条件

  • 当前控制器控制状态文字颜色
  • 在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下preferredS

    本文链接:https://www.haomeiwen.com/subject/vygtlftx.html