拥有索引的tableview。它们在初始加载时可见。
我也有一个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连接。 searchBar和searchDisplayController在viewDidLoad中以编程方式添加:
self.searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 290, 44)];
self.searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self];
然后我将搜索栏添加到表格单元格中,如果是cellForRowAtIndexPath
[cell addSubview:self.searchBar];
答案 0 :(得分:1)
您的设置可能存在的一个问题是您将搜索栏放在表格视图单元格中。
更标准(更简单)的方法是使搜索栏成为表格视图的headerView
。
self.tableView.headerView = self.searchBar;
在设置搜索显示控制器后立即执行此操作。