Как отобразить «модальное» представление (контроллер) * в * интерфейсе панели вкладок, не скрывая панель вкладок - PullRequest
3 голосов
/ 30 ноября 2011

Я хочу реализовать «модальный» вид, такой как «поиск», в AppStore на iPad.

Когда показано, оно должно:

  • По-прежнему показывать панель вкладок. Выбор любого из элементов должен привести вас к их обычному виду.
  • Элемент панели вкладок не выделен (так как вид поиска "модальный").

Самое близкое, с чем я пришел, с существующими API:

  • В контроллере представления «search» установите модальный стиль представления UIModalPresentationCurrentContext.
  • Показать "поисковый" вид контроллера контроллера из активного контроллера вида внутри контроллера панели вкладок (не из самого контроллера панели вкладок).

Однако, это не правильный путь:

  • Вид контроллера отображается под строкой состояния . Я могу обойти это с -[UIViewController viewDidAppear:], но при изменении ориентации устройства это приводит к всевозможным проблемам с рисованием, и контроллер, опять же, прячет себя под строкой состояния.
  • Элемент панели вкладок все еще выделен.

1 Ответ

0 голосов
/ 30 ноября 2011

, чтобы отображать панель поиска, просто обрежьте высоту модального вида, чтобы она не закрывала панель вкладок.

Для изменения ориентации вам просто нужно справиться с этим, изменив размер вида и убедившись, что модальный вид всегда выводится впереди всех видов. Вы можете изменить рамку и содержимое этого представления программно или просто создать кончики для ориентаций, которые вы хотите поддерживать, и загружать их при изменении. Также обратите внимание, что если вы действительно меняете рамку вида программным способом, вам, вероятно, потребуется также изменить размеры / переместить поля.

Для работы с панелью вкладок вы должны иметь возможность отключить выделенный элемент. Поэтому, когда вы открываете модальное окно, обязательно выключите выделенный элемент. Если вы хотите взаимодействовать с панелью инструментов из модального представления, вы можете сделать это с делегатами, передавая экземпляр родительского представления (или просто получая доступ к родительскому представлению ... Я думаю, вы получите это бесплатно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...