При использовании 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 в зависимости от содержимого, но это еще одна проблема.:)

Другие вопросы по тегам