У меня проблемы с добавлением и удалением панели поиска UISearchControllers в панель UINavigationBar.
Вот что я делаю:
Добавить панель поиска в представление
searchController = [[UISearchController alloc]initWithSearchResultsController:nil];
searchController.searchResultsUpdater = self;
searchController.searchBar.delegate = self;
searchController.dimsBackgroundDuringPresentation = NO;
searchController.hidesNavigationBarDuringPresentation = NO;
searchController.searchBar.searchBarStyle = UISearchBarStyleProminent;
searchController.searchBar.barTintColor = [UIColor blackColor];
searchController.searchBar.tintColor = [UIColor darkGrayColor];
[searchController.searchBar setFrame:CGRectMake(0, 200, 320, searchController.searchBar.frame.size.height)];
[self.view addSubview:searchController.searchBar];
При нажатии кнопки добавить панель поиска к элементу навигации
Это работает как ожидалось
[self.navigationController setNavigationBarHidden:false];
self.navigationItem.titleView = searchController.searchBar;
self.navigationItem.hidesBackButton = true;
И вот где я получаю странное поведение:
Нажав еще одну кнопку, удалите панель поиска из панели навигации и добавьте ее обратно в представление
[searchController.searchBar removeFromSuperview];
[self.navigationController setNavigationBarHidden:YES animated:true];
[self.view addSubview:searchController.searchBar];
[searchController.searchBar setFrame:CGRectMake(0, 200, 320, searchController.searchBar.frame.size.height)];
Панель поиска удаляется из панели навигации, как и ожидалось, но не возвращается к основному виду. (ну я нигде не вижу)
Я записываю значение строки поиска и вижу, что у нее есть кадр, который я ей дал.
Любая помощь здесь будет принята с благодарностью,
Спасибо