UISearchController 不使用导航控制器

Posted

技术标签:

【中文标题】UISearchController 不使用导航控制器【英文标题】:UISearchController without use of Navigation Controller 【发布时间】:2016-10-30 11:41:33 【问题描述】:

是否可以在Navigation Controller 中不显示SearchBar 的情况下使用UISearchController?我基本上希望SearchBar 留在屏幕上并在其下方显示 TableView:

我试图做的是: 我在情节提要上创建了一个UITableViewController 并将其链接到自定义NPTableViewController 类。然后我这样做了:

    let resultsTable = storyboard!.instantiateViewController(withIdentifier: "LocationSearch") as! NPTableViewController
    searchController = UISearchController(searchResultsController: resultsTable)
    searchController?.searchResultsUpdater = resultsTable

    let searchBar = searchController!.searchBar
    searchBar.sizeToFit()
    searchBar.placeholder = "Search for places"
    searchBar.frame.origin.y = 100.0
    self.view.addSubview(searchBar)

现在当我运行它时,会显示searchBar,但是当我点击它时,背景会变暗,searchBar 会消失,我的resultsTable 也不会显示。

【问题讨论】:

***.com/questions/30851467/… @Joe 但是如果没有 TableView 本身,我应该如何显示 tableViewHeader? 没人知道吗? Prevent UISearchController from hiding the navigation bar 【参考方案1】:

我想出的解决方案其实很简单。我没有使用UISearchController,而是使用了普通的UISeachBarUITableView。由于UISearchController 对您的帮助不大,所以如果我构建自己的 SearchController,工作几乎是一样的。

【讨论】:

以上是关于UISearchController 不使用导航控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 UISearchController 使导航栏保持可见?

如何在导航栏内隐藏 UISearchController

如何防止 UISearchController 显示导航栏?

如何使用代码将 UISearchController Searchbar 放到导航栏上

如何在使用 popViewControllerAnimated(true) 导航出 UITableView 时修复 UISearchController 的警告

definePresentationContext 应设置为 YES,但在与 UISearchController 结合使用时会中断导航