【问题标题】:When searchController is active, status bar style changes当 searchController 处于活动状态时,状态栏样式会发生变化
【发布时间】:2015-08-15 23:33:10
【问题描述】:

在我的整个应用程序中,我将状态栏样式设置为浅色内容。

但是,当搜索控制器处于活动状态时,它会重置为默认样式:

我已经尝试了一切来解决这个问题,包括在 if 语句中检查搜索控制器是否处于活动状态,然后将导航栏的色调更改为白色,并将状态栏样式设置为浅色内容。我该如何解决这个问题?

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    有几个选项,这可能是一个错误的问题,但与此同时,您是否尝试过:

    选项 1:

    info.plist,在你的info.plist中设置“状态栏样式”的选项,这是一个字符串值,值为“UIStatusBarStyleLightContent”

    另外,在您的 infor.plist 中,设置变量“查看基于控制器的状态栏外观”并将其值设置为“否”

    然后,在应用程序的每个视图控制器中,在初始化程序、ViewWillAppear 和 ViewDidLoad 中显式声明以下命令

    UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
    

    选项 2:

    在您的 info.plist 中,将“状态栏样式”选项设置为“UIStatusBarStyleLightContent”。此外,在您的 infor.plist 中,设置变量“基于控制器的状态栏外观”并将其值设置为“YES”

    然后,在每个视图控制器中放置以下方法

    override func preferredStatusBarStyle() -> UIStatusBarStyle {
                return UIStatusBarStyle.LightContent;
            }
    
    override func prefersStatusBarHidden() -> Bool {
        return false
    }
    

    此外,您可能需要执行以下操作:

        self.extendedLayoutIncludesOpaqueBars = true
    

    另外,我为你翻译成 Swift 代码

    【讨论】:

      【解决方案2】:

      将此添加到您的代码中以使状态栏样式为 Light :

         override func preferredStatusBarStyle() -> UIStatusBarStyle {
      
                  return UIStatusBarStyle.LightContent;
              }
      

      您还可以在信息列表中设置状态栏,它会在您的应用程序中保持不变,直到它在特定视图控制器的代码中被覆盖。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-16
        • 2016-03-17
        • 2014-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-23
        • 1970-01-01
        相关资源
        最近更新 更多