У меня есть табличный вид, содержащий все страны и их флаги. Я работаю над добавлением панели поиска, и все это работает, пока я не решил переместить панель поиска в панель навигации, разрешенную в iOS7 (для моих целей этот макет работает очень хорошо).SearchBar в панели навигации в 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;
}
Что мне не хватает ???
Я сделал еще несколько тестов и обнаружили, что: - (void) searchDisplayController: (UISearchDisplayController *) controller willHideSearchResultsTableView: (UITableView *) tableView вызывается. Я попробовал: searchDisplayController.searchResultsTableView.hidden = NO; , но это тоже не сработало. Пожалуйста помоги!!! – SteveM
Обновление: подтверждено, что все делегаты вызываются, кроме ключевого: cellForRowAtIndexPath. Следовательно, причина, по которой я не получаю стол. Другое наблюдение, когда я нажимаю в строке поиска, представление таблицы никогда не тускнеет. – SteveM
Разве кто-нибудь там не работает в этом ??? – SteveM