gpt4 book ai didi

ios - 如何从搜索结果 DetailView 返回 UITableView

转载 作者:行者123 更新时间:2023-11-30 13:34:48 25 4
gpt4 key购买 nike

我有一个 UITableView ,它工作得很好。它嵌套在 UITabbarController 中。

我还将 UISearchController 与 UISearchBar 集成在一起,它允许用户搜索 UITableView 的内容。这也很好用。

当您选择其中一个 TableViewCell 时,您将进入 DetailView。

当您在没有主动搜索的情况下执行此操作时,一切正常,但是当您输入搜索词并从结果中选择一个单元格时,无法返回 TableView,因为左上角没有后退按钮角,您也不能使用向后滑动手势。

我可能需要补充一点,我没有为搜索结果指定单独的 UITableView:

self.searchController.searchBar.delegate = self
self.searchController.searchResultsUpdater = self
self.tableView.tableHeaderView = self.searchController.searchBar
self.definesPresentationContext = true

我这样定义 SearchController:

var searchController: UISearchController = {
let controller = UISearchController(searchResultsController: nil)
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
return controller
}()

我想,也许我必须将 UINavigationController 放入 UITabbarController 并将我的 TableView 设置为其 RootViewController,但后来我遇到了问题,SearchBar 隐藏在 NavigationBar 后面......

编辑(@ryantxr):我的 didSelectRowAtIndexPath:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}

cellForRowAtIndexPath中,搜索和不搜索之间没有区别,因为单元格看起来相同。这也是我不使用两种不同的转场的原因。

但是你是对的,我在使用搜索和不搜索时不会使用不同的segue。单击单元格时使用的唯一转场是在 Storyboard 中设置的,在 prepareForSegue 中我设置了目标 UIViewController 的属性,这也可以正常工作。

最佳答案

事实证明,问题是 UITableViewController 中包含 UISearchController 的一小段代码造成的:

self.definesPresentationContext = true

通过删除它,结果 View Controller 可以正确显示,并且导航栏没有消失,因此可以返回到搜索结果等...

关于ios - 如何从搜索结果 DetailView 返回 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36203997/

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