当前位置: 首页 > 知识库问答 >
问题:

UISearchController将状态栏样式重置为。搜索栏成为第一响应者时的默认设置

巫马承德
2023-03-14

我正在使用UISearchController并将其搜索栏添加到表视图控制器的标题中:

我面临的问题是,当用户开始在搜索栏中键入内容,使其成为第一个响应者时,状态栏样式将恢复为第一个响应者。违约:

我正在使用preferredStatusBarStyle()在视图控制器中设置样式。如果我使用这些信息。plist设置样式,并另外将“基于视图控制器的状态外观”键设置为否,则样式保持为灯光。

但是,不能将“基于视图控制器的状态外观”键设置为“否”,因为有些VCs需要默认样式,有些VCs需要灯光样式。

我尝试将样式重置为搜索栏委托方法(当它成为第一响应者时会被调用),即:

func searchBarShouldBeginEditing(searchBar: UISearchBar) -> Bool
{
    UIApplication.sharedApplication().statusBarStyle = .LightContent
    self.setNeedsStatusBarAppearanceUpdate()
    return true
}

但这也不管用。

有什么建议吗?

共有2个答案

闻人嘉悦
2023-03-14

SWIFT 3.0更新

调用导航控制器时:

ui应用程序。共享。statusBarStyle=。lightContent(在viewDidLoad上)

在信息中设置查看基于控制器的状态栏外观=否。普利斯特

齐栋
2023-03-14

我不知道是否有其他方法,但我通过实现一个UISearchController派生类并使用它来解决它:

class MySearchController : UISearchController
{
   // various init overrides ...

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

或者,如果正在使用导航控制器,则这将阻止调用preferredStatusBarStyle(),在这种情况下,请使用以下选项:

应用程序。sharedApplication()。statusBarStyle=。轻内容

确保在info.plist“基于视图控制器的状态栏外观”设置为否。

 类似资料:
  • 我正在为iOS 7更新我的应用程序,我正在调整我的所有视图,以适应新的透明状态栏(我的应用程序仍将使用不透明的导航栏)。 在每个视图中调整状态栏都相对容易,除了我的一个视图控制器中的UISearchBar连接到UISearchDisplayController时遇到的一个主要问题。 搜索栏似乎显示正常,如下所示: 问题是,一旦我开始搜索,导航栏就会消失(应该如此),但其他所有内容也会向上移动以重叠

  • 默认搜索 (默认搜索,将显示在前台搜索框,前台点击时直接作为关键词进行搜索。)

  • 我想设计一个寻找栏,看起来像下图中的那个。 通过使用默认搜索栏,我将得到这样的东西: 所以我只需要改变颜色。我不需要额外的款式。有没有什么直接的方法可以做到这一点,或者我应该建立我的自定义绘图。? 我试图建立自定义的一个,但我不能得到确切的一个如上所示。使用自定义drawable后,我得到的结果如下所示: 如果我需要建立一个自定义的,那么请建议如何减少进度线的宽度和形状。 我的自定义实现: bac

  • 我目前有一个navbar是(我更希望它是)居中的。然而,在整个完成我的网站我完全忘记了添加一个搜索栏。我决定使用W3Schools中的代码将搜索栏合并到我的navbar的右侧,而不影响任何navbar文本(主页、游戏、办公室、结帐、联系人),并且与我的navbar在同一行上。我该如何做到这一点呢? 这是我的标题: 标题和搜索栏的CSS代码: 到目前为止是这样的:

  • 问题内容: 注意1: 此问题与在更新的表视图之外添加UISearchController的搜索栏有关,而不是作为表视图的标题。 注意2: 一些反复试验使我找到了解决方案。 我是iOS开发的新手,正在努力使用UISearchController类。我有一个视图控制器,在我的视图控制器视图中,我计划在表格视图上方有一个搜索栏。我希望搜索栏链接到UISearchController。由于接口生成器没有U

  • 首先,我尝试了这个线程上的每一个答案:如何在iOS7中更改状态栏文本颜色,但我无法让状态栏显示白色文本。 在应用程序启动时,文本在加载到我的根视图控制器之前显示为白色。我认为问题在于,我的根视图控制器设置为不显示状态栏(我想要的),但其他每个视图都需要显示它。 当我转到第二个视图时,我看到状态栏文本从白色闪烁到黑色。 我已尝试在AppDelegate中将状态栏设置为亮起。 我已经尝试在rootVi