0

Как вставить панель поиска с элементами панели навигации?Элементы навигационной панели исчезают при использовании UISearchDisplayController показываетSearchBarInNavigationBar

Я использовал [searchBar sizeToFit], и он не работал и без использования displaysSearchBarInNavigationBar панель навигации исчезает при нажатии на searchBar.

Я попытался ответить в UISearchDisplayController UISearchDisplayController hiding navigation bar

-(void)viewDidLayoutSubviews{ 
[self.navigationController setNavigationBarHidden:NO animated:NO]; 
} 

но это приводит к тому, UISearchDisplayController searchResultsTableView будет отображаться ниже навигационной панели, скрывая панель поиска.

+0

Я решил это, используя ответ [здесь] (http://stackoverflow.com/a/24750397/2328392), то есть используя '[tableView setFrame: CGRectMake (0, 42, 320, 380)]; проблема, что теперь она несовместима с другими устройствами iOS и кнопкой отмены, не работает, когда в строке поиска есть данные. У кого-нибудь есть предложения? –

+0

Я попробовал другой подход с 'CGRectMake' ' CGRect s = self.searchDisplayController.searchBar.frame; CGRect newFrame = CGRectMake (0, s.size.height, s.size.width, s.size.height * [filterList count]); tableView.frame = newFrame; ' , но проблема с кнопкой отмены остается, и теперь строки реального поиска не обновляются даже с помощью' [tableview reload] '. –

ответ

0

Я попытался изменить размеры рамок resultsTableView с помощью метода ниже, не имея строки поиска в навигационной панели i.e self.searchDisplayController.displaysSearchBarInNavigationBar = NO, но это вызвало проблемы с отменой в режиме редактирования. Это было взято из Moving SearchBar table view

- (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; 


} 

, а затем я нашел лучшее решение из this нити

и только с помощью [self.searchDisplayController.navigationItem setLeftBarButtonItem: self.sidebarButton] в viewDidLoad это решить мою проблему. Теперь остается вопрос о том, как установить размер кадра searchResultsTableView на основе контента, но это еще одна проблема. :)

Смежные вопросы