【问题标题】:Preloaded results on UISearch display controllerUISearch 显示控制器上的预加载结果
【发布时间】:2014-02-26 01:55:08
【问题描述】:

我需要实现搜索历史记录。所以我想做的是在尚未输入文本时在搜索显示控制器中显示历史记录。

我实现了这个:

-(void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller{
    self.searchDisplayController.searchResultsTableView.hidden=NO;
}

还有这个:

- (void)searchDisplayController:(UISearchDisplayController *)controller didHideSearchResultsTableView:(UITableView *)tableView{
  self.searchDisplayController.searchResultsTableView.hidden=NO;
}

使表格始终显示。

我还实现了行数来区分案例:(我也处理了cellForIndexpath,但这里不需要显示)

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if ([self.searchDisplayController.searchBar.text isEqualToString:@""]) {
    NSArray* d=[DropsAppDelegate getSharedInstance].userData.getLastSearches;
    return d.count;
}
return [searchResultPlaces count];
}

但这会造成混乱。该表格显示在半透明屏幕的后面,并在退出搜索时变为可见。

当我实际输入内容时,该屏幕也不会关闭。 我该怎么做才能让UITableView 始终显示? 我查看了所有答案,但对 iOS7 没有任何帮助。

【问题讨论】:

    标签: ios objective-c ios7 uisearchbar uisearchbardisplaycontrol


    【解决方案1】:

    您似乎在与UISearchDisplayController 战斗,这一直有些不情愿,在 iOS7 上更是如此。

    我的建议是不要使用它,而是使用搜索栏实现您需要的功能。这真的没那么难,你会得到你需要的一切的委托回调,而且你不会与技术抗争。 UISearchBarDelegate 讲述了整个故事。

    【讨论】:

    • 为这个答案投票。 UISearchDisplayController 在 iOS7 中完全崩溃了。我用UISearchBar 实现了自己的 UISearchDisplayController 替代方案
    • 我已经考虑过了,但我真的不想改变我的应用程序......我正在寻找这个解决方案......
    • 无论如何,我照你说的做了,即使这不是我想要的。但我不能拿回这 50 分,所以享受吧:)
    • @DimaGoltsman 为什么不呢?这真的不是那么难,而且你的改变是最小的。在另一个之上添加另一个表格,隐藏它,并在用户进入搜索栏后显示它。在那里您可以显示您的缓存结果或搜索结果。
    • 是的,我就是这么做的……但我只能在 17 小时内给你 50 分 :)
    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多