Ios Swift-带单独搜索结果控制器的UISearchController
当您想在单独的searchResultsController中显示搜索结果时,我试图找出如何使用UISearchController—我找到的每一本指南、视频和教程都使用了当前的viewController来显示搜索结果,并实例化UISearchController,如下所示:Ios Swift-带单独搜索结果控制器的UISearchController,ios,swift,xcode,uisearchcontroller,Ios,Swift,Xcode,Uisearchcontroller,当您想在单独的searchResultsController中显示搜索结果时,我试图找出如何使用UISearchController—我找到的每一本指南、视频和教程都使用了当前的viewController来显示搜索结果,并实例化UISearchController,如下所示: let searchController = UISearchController(searchResultsController: nil) class resultsController: UITableViewC
let searchController = UISearchController(searchResultsController: nil)
class resultsController: UITableViewController, UISearchResultsUpdating {
但是我想把视图调暗,并用搜索结果显示一个新的tableView,就像在AppStore搜索中一样。我所做的是创建一个新的tableViewController,给它一个故事板id,然后像这样实例化它:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let resultsController = storyboard.instantiateViewController(withIdentifier: "searchResults") as! UITableViewController
let searchController = UISearchController(searchResultsController: resultsController )
这似乎有效。然而,从现在起我就被困在这里了。我不知道如何在resultsController中显示搜索结果,不知道在resultsController的cellForRowAtIndexPath中放置什么,等等
感谢您的帮助 设法弄明白了- 1) 在实例化searchController时添加此行:
searchController.searchResultsUpdater = resultsController
func updateSearchResults(for searchController: UISearchController) {
}
2) 将UISearchResultsUpdated添加到结果控制器,如下所示:
let searchController = UISearchController(searchResultsController: nil)
class resultsController: UITableViewController, UISearchResultsUpdating {
3) 在ResultController中添加此函数:
searchController.searchResultsUpdater = resultsController
func updateSearchResults(for searchController: UISearchController) {
}
从那里,您可以获取搜索文本,处理它,然后重新加载tableView:
func updateSearchResults(for searchController: UISearchController) {
let searchText = searchController.searchBar.text!
//Do Stuff with the string
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
希望它能帮助别人 如何将信息从那里解析回初始ViewController?例如,当选择UITableViewCell时?使用自定义协议或通过didSelectRow,然后以编程方式将其关闭并将结果解析回初始VC?是否可以使用段控件让UISearchController在两个搜索结果视图之间切换?这确实帮了我的忙,谢谢