【问题标题】:UISearchController overlaps UITableView which makes me unable to present detailed ViewController for cellUISearchController 与 UITableView 重叠,这使我无法为单元格呈现详细的 ViewController
【发布时间】:2016-04-30 05:28:10
【问题描述】:

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

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

这让我认为 UISearchController 实际上是在呈现第二个 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

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

【问题讨论】:

    标签: ios swift uitableview uiviewcontroller uisearchbar


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多