【问题标题】:Reloading / Displaying searchResultsTableView of UISearchDisplayController after search method iteration is finished搜索方法迭代完成后重新加载/显示 UISearchDisplayController 的 searchResultsTableView
【发布时间】:2011-09-22 12:18:07
【问题描述】:

我已经修改了 Apple 的示例 iOS 项目 TableSearch 的代码,以便通过解析其内容来使用它来搜索 Web 服务。在使用 SearchDisplayController 的 SearchBar 执行搜索时,除了一个丑陋的细节之外,我实现的所有东西都可以正常工作。我更改了 SearchDisplayController 的行为,使其在点击“搜索”按钮时首先调用我的搜索功能。

问题在于,当搜索迭代(在 NSOperationQueue 中的后台执行)完成时,(searchDisplayController 的)“searchResultsTableView”不会自动显示或没有分配结果内容。如果您随后更改 SearchBar 的文本或在触摸搜索字段时出现的视图中点击“取消”按钮(请参阅 TableSearch),则正确的 TableView 将显示在搜索结果中。我只是想让这个步骤在搜索操作完成后立即执行,所以在你交互之前。在此阶段,当前显示“无结果”标签。 “filterContentForSearchText”和“shouldReloadTableForSearchString”方法与原始TableSearch项目没有变化。

我查看了 SearchDisplayController 的不同类引用及其属性,但我还没有找到任何最终解决方案。

我在 NSOperation 完成后肯定会迭代的部分中尝试了以下内容,但似乎并没有解决问题。

[self.searchDisplayController.searchResultsTableView removeFromSuperview];

self.searchDisplayController.searchResultsTableView.hidden = YES;

这些操作都有我想要显示的正确视图,但滚动被禁用,直到您更改状态以便再次隐藏视图。不过,可以选择 TableView 单元格。我基本上只想启用滚动功能...

提前感谢您的努力!

【问题讨论】:

  • 你是否在 UISearchDisplayController 委托的实现中实现了 shouldReloadTableForSearchString 方法?
  • 感谢您的评论!是的,我有,shouldReloadTableForSearchString 方法与 Apple 的原始版本没有变化,否则我会发布我更改的代码。我很确定我没有为这件事改变任何决定性的方法。 “filterContentForSearchText”都不是。

标签: iphone objective-c cocoa-touch uisearchdisplaycontroller


【解决方案1】:

我有同样的问题,我刚刚解决了。我有完全相同的问题,我想禁用即时搜索,当我点击搜索按钮时,表格没有加载,但是当我点击取消时,它加载了。如果我在搜索后没有加载正确结果的表视图上滚动,它会由于索引超出范围而崩溃。

您需要做的是重新加载 searchResultTableView 而不是当前的 tableview。按搜索词过滤掉数据后,放

[self.searchDisplayController.searchResultsTableView reloadData]

重新加载您的搜索结果,它会在您点击搜索按钮后显示。 希望对您有所帮助

【讨论】:

    【解决方案2】:

    我发现设置searchBar.text会导致searchDisplayController.searchResultsTableView被添加到self.view中,我是这样解决的:

    self.searchBar.text = @"xxxx";
    [self.searchDisplayController.searchResultsTableView removeFromSuperview];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多