У меня есть два контроллера вида, каждый из которых содержит UISearchController
и UITableView
. Кодекс в viewDidLoad
является:UISearchBar неправильно анимируется под навигационной панелью
SearchResultsTableViewController *searchResultController = [[SearchResultsTableViewController alloc]initWithNibName:@"SearchResultsTableViewController" bundle:nil];
UINavigationController *navSearchResultsController = [[UINavigationController alloc] initWithRootViewController:searchResultController];
self.searchController = [[UISearchController alloc] initWithSearchResultsController:navSearchResultsController];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = YES;
[self.searchController.searchBar sizeToFit];
self.searchController.searchBar.delegate = self;
self.searchController.delegate = self;
self.tableView.tableHeaderView = self.searchController.searchBar;
self.tableView.userInteractionEnabled = YES;
первый контроллер представления является rootViewController
, который прекрасно работает без каких-либо проблем. Второй контроллер просмотра перемещается через навигационный контроллер на основе выбора сегмента.
[self.navigationController pushViewController:self.vc];
Существует только одна проблема с контроллером второго вида. Когда я нажимаю на searchBar
, он анимирует вверх и идет под панелью навигации, а первый - в своем месте и не поднимается вверх.
Может ли кто-нибудь сказать мне, как отключить эту анимацию? Я хочу сохранить searchBar
на том же месте во время поиска. Это точно такая же реализация для обоих контроллеров. Почему каждый действует по-другому?
Спасибо,
Я не понимаю, это 'второго контроллера представления выталкивается через навигацию контроллер на основе сегмента selection.' –
Я имею в виду есть сегментированный контроллер. Когда я нажимаю второй сегмент, он переходит ко второму viewController. – Missa