gpt4 book ai didi

ios - Swift - UISearchController 与单独的 searchResultsController

转载 作者:IT王子 更新时间:2023-10-29 05:27:16 26 4
gpt4 key购买 nike

当您想在单独的 searchResultsController 中显示结果时,我正在尝试弄清楚如何使用 UISearchController - 我发现的每一个指南、视频和教程都使用当前的 viewController 来显示搜索结果,并且像这样实例化 UISearchController:

let searchController = UISearchController(searchResultsController: nil)

但我想使 View 变暗并显示一个包含搜索结果的新 tableView,就像在 App Store 搜索中所做的一样。所以我所做的是创建一个新的 tableViewController,给它一个 Storyboard 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

2) 将 UISearchResultsUpdating 添加到您的 resultsController 中,如下所示:

class resultsController: UITableViewController, UISearchResultsUpdating {

3) 添加这个函数,也在你的 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()

}

}

希望对大家有所帮助!

关于ios - Swift - UISearchController 与单独的 searchResultsController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45060314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com