Я вижу странную ситуацию. Я поместил панель поиска в панель навигации и связал UISearchDisplayController с панелью поиска. Теперь контроллер отображения поиска имеет тенденцию скрывать панель навигации, когда пользователь нажимает на панель поиска (следовательно, скрывает и панель поиска). Чтобы противостоять этому, я создал подклассы UISearchDisplayController и реализовал следующий код: -
- (void)setActive:(BOOL)visible animated:(BOOL)animated
{
[super setActive: visible animated: animated];
[self.searchContentsController.navigationController setNavigationBarHidden: NO animated: NO];
}
Теперь это устранило исходную проблему. Я могу искать и переходить к другим контроллерам.
Однако допустим, что я выполняю поиск на контроллере представления A, а затем нажимаю на результат поиска, который затем подталкивает контроллер представления B в стек навигации. Теперь, если я открою контроллер представления B и вернусь обратно к A, моя панель навигации исчезнет. Похоже, что контроллер отображения поиска активен, поэтому он скрывает панель навигации.
Если я сделаю контроллер отображения поиска неактивным, а затем нажму на контроллер представления B, а затем вытолкну его, появится панель навигации.
Итак, есть ли способ, чтобы мой контроллер отображения поиска мог оставаться активным, а панель навигации не исчезала, когда я открываю контроллер просмотра B из стека навигации?
И я нацелен на iOS6
(Это очень длинный код, поэтому не знаю, что мне здесь размещать).