При использовании UISearchDisplayController элементы панели навигации исчезают SearchBarInNavigationBar
Как встроить панель поиска с элементами панели навигации?
я использовал [searchBar sizeToFit]
и это не сработало и без использования displaysSearchBarInNavigationBar
панель навигации исчезает при нажатии на панели поиска.
Я попробовал ответ в UISearchDisplayController UISearchDisplayController скрывая панель навигации
-(void)viewDidLayoutSubviews{
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
но это вызывает UISearchDisplayController searchResultsTableView
отображаться под панелью навигации, скрывая панель поиска.
1 ответ
Я попытался изменить размеры фрейма resultsTableView с помощью метода ниже, не имея панели поиска на панели навигации, т.е. self.searchDisplayController.displaysSearchBarInNavigationBar = NO
но это вызвало проблемы с отменой в режиме редактирования. Это было взято из просмотра таблицы Moving SearchBar
- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView{
CGRect s = self.searchDisplayController.searchBar.frame;
CGRect newFrame = CGRectMake(0,
s.size.height,
s.size.width,
s.size.height*[filteredList count]);
tableView.frame = newFrame;
}
и тогда я нашел лучшее решение из этой темы
и просто используя [self.searchDisplayController.navigationItem setLeftBarButtonItem: self.sidebarButton]
в viewDidLoad
это решило мою проблему. Теперь остается то, как установить размер кадра searchResultsTableView в зависимости от содержимого, но это еще одна проблема.:)