Вопрос

Что я хочу

Полностью пользовательская навигационная панель, которая будет сохраняться и позволить пользователю взаимодействие через пользовательские модальные переходы.

Что я сделал

Я построил контроллер родительского представления, который содержит вид контейнера внизу и представление (пользовательская навигационная панель) на вершине. Просмотр контейнера встраивает контроллер просмотра, который может представлять другие контроллеры просмотра модально.

Контроллеры просмотра, которые представлены модально, используют пользовательский переход (UiviewControllerTransitioningDeLegate) для всплытия снизу и только занимают часть контроллера просмотра внизу (то есть, выходя из видимого меню).

Когда первый контроллер просмотра представлен модально, пользовательское меню навигации все еще можно взаимодействовать. Однако, если первый модально представленный контроллер просмотра в свою очередь представляет другой контроллер просмотра, то пользовательский навигационный бар не отвечает на взаимодействие пользователя.

|  NAV BAR  |             
|-----------|             |------------|               |------------|              
| Container |             |   View     |               |    View    |             
|   view    |-> EMBED ->  | Controller |-> Presents -> | Controller |-> Presents ->
|           |             |            |    Modally    |    1st     |    Modally   
.

(cont)

  |------------|
  |    View    |
->| Controller |
  |     2nd    |
.

Когда первый контроллер просмотра представлен модально, навигационная панель все еще реагирует на прикосновение. Когда второй (и любые другие вниз по этой линии (то есть 3-й, 4-е ...)), навигационная панель все еще видима, но не отвечает на прикосновения пользователя.

Есть пример проекта на github , который иллюстрирует проблему у меня.

Какая моя проблема

Я хотел бы иметь возможность нажать на панели навигации, независимо от того, сколько контроллеров просмотра я представил модально.

Должен ли то, как я приближаюсь к этой работе?

Какой лучший способ выполнить то, что я хочу сделать? Есть ли стандартный способ создания полностью настраиваемых навигационных баров (то есть несколько кнопок, пользовательские высоты и т. Д.)?

Это было полезно?

Решение

Пожалуйста, измените стиль модального презентации для второго контроллера просмотра в файл cvtfirstviewcontroller.h Согласно Github Project.

Используйте этот код

     secondViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
.

вместо

     secondViewController.modalPresentationStyle = UIModalPresentationCustom;
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top