У меня есть родительский класс с табличным представлением и панелью поиска над ним, который является подклассом контроллера табличного представления. Делегаты для searchBar и searchdisplaycontroller задаются в отдельном классе, унаследованном от UISearchdisplaycontroller. Источник данных и делегаты для tableview и панели поиска обрабатываются в этом классе отдельно. Классы находятся под ARC.
Следовательно, когда пользователь нажимает на поиск, управление переходит из класса FilesListController (родительский) в этот класс. Теперь, когда пользователь нажимает кнопку отмены, делегат панели поиска устанавливается в этом классе, т.е.
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar
ВЫЗЫВАЕТСЯ, но НЕ СЛУЖИТ для закрытия полноэкранного представления таблицы поиска и возврата к родительскому контроллеру представления. Однако, если я не пишу этот делегат в классе поиска, он работает правильно. Я установил делегатов панели поиска в xib и при вызове:
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
нравится:
self.searchResultsTableView.delegate = self;
self.searchResultsTableView.dataSource = self;
[parentFileViewController.searchDisplayController setDelegate:self];
Где я ошибаюсь? Заранее спасибо.