searchDisplayController

searchDisplayController

使用带有索引的表视图。它们在初始加载时可见。

我也有一个searchDisplayController

当我使用searchDisplayController并从中取消时,突然隐藏了原始tableview上的索引。

我在iOS 6上从未遇到过这个问题。

这是我的与iOS 6兼容的代码:

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView2 {

 if (self.searchDisplayController.active)
    return nil;

else
    return self.indices;
}

我没有运气尝试过这个:
- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller {
    [self.tableViewOriginal reloadSectionIndexTitles];
}

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller {
    [self.tableViewOriginal reloadSectionIndexTitles];
}

更新:

要添加tableView,我使用情节提要,并将其与IBOutlet连接。在viewDidLoad中以编程方式添加了searchBar和searchDisplayController:
  self.searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 290, 44)];
  self.searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self];

然后,如果cellForRowAtIndexPath,则将搜索栏添加到表单元格中
 [cell addSubview:self.searchBar];

最佳答案

设置的一个可能问题是,您正在将搜索栏放在表格视图单元格中。

一种更标准(且更简单)的方法是使搜索栏成为表视图的headerView

self.tableView.headerView = self.searchBar;

设置搜索显示控制器后,只需执行一次即可。

关于ios - iOS7 searchDisplayController隐藏表 View 索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23696855/

10-11 04:00