ios - UISearchController 与 UITableView 重叠,这使我无法为单元格呈现详细的 ViewController

标签 ios swift uitableview uiviewcontroller uisearchbar

我制作了一个包含 UISearchControllerUITableViewUIViewController。 UITableView 最初会显示所有结果,然后每当用户开始输入内容时,这些结果都会通过 UISearchController 进行过滤。单击每个单元格应链接到详细页面。虽然这在用户尚未开始输入时有效,但一旦用户开始输入,即当 UISearchController 开始显示结果时,它就不再有效。这就是我在控制台中得到的全部内容:

Warning: Attempt to present <MyProject.profileView: 0x13e9df000>  on <MyProject.SearchPage: 0x142a1d8f0> which is already presenting <UISearchController: 0x142a1f7c0>

这让我认为 UISearchController 实际上正在呈现第二个 UITableView,其中包含第一个 UITableView 的过滤结果,我认为这应该是导致错误的原因。不过,我并不完全确定。

这就是我将 UISearchController 添加到我的 UIViewController 的方法:

searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
self.definesPresentationContext = true
searchController.searchBar.scopeButtonTitles = ["Groups", "People"]
searchController.searchBar.delegate = self
tableView.tableHeaderView = searchController.searchBar

如果您知道可能导致此问题的原因和/或我如何解决它,请告诉我,我将不胜感激。提前致谢。

最佳答案

在这个问题上被困了大约两周后,我发现解决方案实际上非常简单。我只需要从 UISearchController 而不是从主 UIViewController 呈现 UIViewController。这行代码修复了它:

self.searchController.presentViewController(vc, animated: false, completion: nil)

关于ios - UISearchController 与 UITableView 重叠,这使我无法为单元格呈现详细的 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36951129/

相关文章:

Facebook好友的iOS TableView为空

ios - 如何根据条件在核心数据中插入数据

iphone - 在 UITableView 中延迟加载图像

ios - 如何在不添加 subview 的情况下实现UITableview seperator 'above first row'

Swift Mac Quick Look 显示图像

ios - 如何循环遍历 SwiftyJSON 中的对象?不仅仅是 swift

ios - 将 IBDesignable 和 prepareForInterfaceBuilder 与 UILabel 一起使用

ios - UITableVIewController 在滚动条上显示文本

ios - 将 UITextField 的一部分设置为不可编辑

ios - 在 Xcode 项目清理构建文件夹后,Images.xcassets 停止工作 - iOS