Я пытаюсь подражать строке поиска в приложении «Календарь» и нахожу это на удивление трудным, хотя многие люди задавали этот вопрос в SO и в других местах, и было предложено много половинных ответов. (Мне нужна поддержка IOS 7).
Основные требования:
1) Есть кнопка панели поиска.
2) При нажатии вышеуказанной кнопки на панели навигации появляется строка поиска с отменой.
Для выполнения 1) вы просто помещаете кнопку панели на панель навигации. Без проблем.
Выполнить 2) - самая сложная часть.
Чтобы панель поиска отображалась на панели навигации, а не где-либо еще, вы должны просто установить self.searchDisplayController.displaysSearchBarInNavigationBar= true
как здесь;
Я могу заставить панель поиска отображаться на панели навигации, но без кнопки отмены.
Предполагается, что код для отображения кнопки отмены:
self.searchDisplayController.searchBar.showsCancelButton = YES;
Это не работает в сочетании с размещением панели поиска на панели навигации.
Наконец, в отличие от searchDisplayController, панель поиска имеет свойство .hidden. После перетаскивания панели поиска и displaycontroller поиска в представление я создал для этого свойство выхода и безуспешно пытался его изменить. (Изменение его с true на false не оказывает видимого влияния на результат.)
Есть ли кто-нибудь, кто успешно создал этот UX, кто может описать все шаги, необходимые для имитации панели поиска в приложении календаря в IOS 7.0?