我有一个包含所有国家及其国旗的表格视图。我一直在努力添加一个搜索栏,并且一切正常,直到我决定将搜索栏移动到 iOS7 中允许的导航栏(出于我的目的,该布局效果很好)。
现在,表格加载正常,搜索栏显示正常。当我在搜索栏中键入时,我可以看到通过控制台构建的过滤列表。一切看起来都不错,除了搜索结果表从不显示。换句话说,我没有在新的表格视图中看到过滤列表。
正在调用此方法来构建过滤列表:
-(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
但标准方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
永远不会被调用。
正如我所说,当搜索栏不在导航栏中时它工作正常。我在 ViewDidLoad 中分配了以下委托和属性:
searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;
searchDisplayController.searchResultsDelegate = self;
searchDisplayController.displaysSearchBarInNavigationBar = YES;
我也有:
#pragma mark - UISearchDisplayController Delegate Methods
-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
// Tells the table data source to reload when text changes
[self filterContentForSearchText:searchString scope:
[[searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[searchDisplayController.searchBar selectedScopeButtonIndex]]];
// Return YES to cause the search result table view to be reloaded.
return YES;
}
我错过了什么???