У меня есть UISearchController
с UITableViewController
как searchResultsController
, то UISearchBar
этого searchController
установлен быть в tableHeaderView
моей нынешней tableView
отображается в моем корневом ViewController. Как и ожидалось, почти все работает хорошо. Но в анимации UISearchBar
(Когда я нажимаю на searchBar и UINavigationBar
шкуры, а searchBar уходит в начало, как в UISearchDisplayController
), у меня странное поведение. Вместо того, чтобы переместиться в положение UINavigationBar
(y: 0), он выпрыгивает из экрана и запускает анимацию, которая показывает кнопку отмены. Я попытался переместить мой код-экземпляр в viewDidLoad
вместо init
, и все будет точно так же. Я думаю, что центр проблемы находится в кадре searchResultsController
, но я не уверен в этом (я пробовал устанавливать кадр без успеха). Все, что я делаю, - это чистый код.UISearchController SearchBar в tableHeaderView анимировать из экрана
Вот соответствующая часть коды:
self.searchController = [[UISearchController alloc] initWithSearchResultsController:self.searchResultsController];
self.searchController.delegate = self;
self.searchController.searchResultsUpdater = self;
self.searchController.searchBar.delegate = self;
[self.searchController.searchBar sizeToFit];
self.tableView.tableHeaderView = self.searchController.searchBar;
self.searchController.definesPresentationContext = YES;
И у меня есть ленивые нагрузки для searchResultsController
:
- (UITableViewController *)searchResultsController {
if (_searchResultsController == nil) {
_searchResultsController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
_searchResultsController.tableView.delegate = self;
_searchResultsController.tableView.dataSource = self;
return _searchResultsController;
}
Я скачал пример код из Apple, но они используют storyBoards и xib для UITableViewCell, SearchController отлично работает в проекте. У кого-то была такая же проблема? Как я могу это исправить? Любые решения или предложения будут оценены.
Спасибо за внимание.
Вы когда-нибудь выяснить этот вопрос? В настоящее время проблема аналогична моей строке поиска. – Lorenzo
Нет, Лоренцо. К сожалению, я использовал устаревший api для этой проблемы. С раскадройками это работает хорошо (я попробовал пример приложения из apple), но в коде у меня появилась эта странная ошибка. –
Хорошо, спасибо в любом случае. Не могли бы вы подробнее рассказать о методе, который вы использовали? Я также рассматривал пример Apple, и они используют раскадровки для таблицы и подробного представления, но все компоненты панели поиска выполняются в коде, это вы сделали? – Lorenzo