如何在UISearchController中显示不同的searchResultsController

时间:2016-12-16 06:51:38

标签: swift uisearchbar uisearchcontroller uisearchbardelegate uisearchresultscontroller

我正在使用UISearchController(不是UISearchDisplayController),我希望在搜索处于活动状态时显示单独的视图。我不想使用当前视图。

尝试self.searchController = UISearchController(searchResultsController: self.resultsController )。但这并没有显示任何内容。

甚至试过这个

 func presentSearchController(_ searchController: UISearchController) {
     DispatchQueue.main.async {
         searchController.searchResultsController?.view.isHidden = false
     }
 }

 func didPresentSearchController(_ searchController: UISearchController) {
     searchController.searchResultsController?.view.isHidden = false
 }

我在搜索激活之前的默认表格数据如下所示,我希望此表格隐藏并显示单独的视图,并将键入的关键字传递给该新视图。我怎样才能做到这一点?

enter image description here

1 个答案:

答案 0 :(得分:1)

由于viewController没有直接的segue,我们需要显式引用我们想要使用的viewController。

我使用了以下代码,当我的searchBar处于活动状态时,它会加载我的新控制器。

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    self.resultsController = storyboard.instantiateViewController(withIdentifier: "searchResults") as! SearchResultsTableViewController
    self.searchController = UISearchController(searchResultsController: self.resultsController )

如果有更好的方法可以告诉我。