iOS7 searchDisplayController隐藏了tableview索引

时间:2014-05-16 13:48:22

标签: ios ios7 tableview

拥有索引的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];

1 个答案:

答案 0 :(得分:1)

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

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

self.tableView.headerView = self.searchBar;

在设置搜索显示控制器后立即执行此操作。