2014-05-16 58 views
1

有索引的tableview。它們在初始加載時可見。iOS7 searchDisplayController隱藏tableview索引

我也有一個searchDisplayController

當我使用searchDisplayController然後取消出來,突然對原有的tableview索引是隱藏的。

我從來沒有這個問題與iOS 6

這裏是我的代碼,與iOS 6的工作:

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

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

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

if (self.searchDisplayController.active) 
    return nil; 

else 
    return self.indices; 
} 

我沒有運氣嘗試這個更新:

要添加tableView我使用故事板並將其與IBOutlet連接。搜索欄和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

我有一個表視圖,顯示錶視圖索引。我也使用不顯示索引的搜索顯示控制器。當搜索被取消時,主表的索引重新出現得很好。這是在iOS 6和7下。所以它通常工作得很好。所以一定有你在做的事情。更新您的問題,提供有關如何設置搜索顯示控制器和搜索欄的更多詳細信息。 – rmaddy

+0

@rmaddy好的我做了 – MobileMon

+0

代碼的其餘部分在哪裏完成設置搜索顯示控制器?你是否設置了代表? – rmaddy

回答

1

與您建立一個可能的問題是,你是把搜索欄在一個表格視圖單元格。

更標準的(也更簡單)方法是使搜索欄成爲表視圖的headerView

self.tableView.headerView = self.searchBar; 

只需在設置搜索顯示控制器後執行此操作即可。