У меня есть UISearchController
с UITableViewController
как searchResultsController
, UISearchBar
этого searchController
установлен в tableHeaderView
моего текущего tableView
, отображаемого в моем корневом ViewController. Как и ожидалось, почти все работает хорошо. Но в анимации UISearchBar
(Когда я нажимаю на объекты searchBar и UINavigationBar
, а searchBar идет вверх, как и в UISearchDisplayController
), у меня странное поведение. Вместо того, чтобы переместиться в положение UINavigationBar
(y: 0), он выпрыгивает из экрана и запускает анимацию, которая показывает кнопку отмены. Я попытался переместить код экземпляра в viewDidLoad
вместо init
, и все будет точно таким же. Я думаю, что центр проблемы находится в рамке представления searchResultsController
, но я не уверен в этом (я попытался установить кадр без успеха). Все, что я делаю, - это чистый код.
Вот соответствующая часть кода:
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 отлично работает в проекте. У кого-то была такая же проблема? Как я могу это исправить? Любые решения или предложения будут оценены.
Спасибо за внимание.