使用带有索引的表视图。它们在初始加载时可见。
我也有一个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/