2017-01-05 5 views
1

ВОПРОСЫ НА КОНЕЦ ПОСЛЕUISplitViewController в UITabBarController - SplitView Navigation Bar Glitch/Ошибка или я что-то не так?

ПРОБЛЕМА: я обнаружил странное поведение UISplitViewController при встраивании его в UITabBarController. Настройка очень проста и может быть воспроизведена без какого-либо кодирования. Создайте приложение на основе StoryBoard и перетащите UITabBarController на StoryBoard и сделайте его начальным контроллером. Затем перетащите UISplitViewController на доску и сделайте ее предметом U ITabBarController. Настройте контроллер подробного представления UISplitViewControllers в UINavigationController. Наконец, установите цвет фона главных и подробных контроллеров представления на что-то заметное.

раскадровка должна выглядеть следующим образом: enter image description here

Шаг 1: Запустите приложение на устройстве, которое может показать мастер и детализацию в то же время (например IPad или большой экран iPhone..). Вы должны заметить, что мастер не распространяется под решеткой, и вместо этого светится фон UISplitViewController. enter image description here

Шаг 2: Поворот экрана в портретный поэтому мастер получает разрушилась. Проведите по сторонам, чтобы открыть мастер. На этом этапе обе панели навигации показывают правильный цвет фона. enter image description here

Шаг 3: Поверните экран назад к пейзажу. Теперь деталь имеет фон UISplitViewController, и мастер показывает правильный цвет. enter image description here

РЕЗУЛЬТАТЫ:

  • На старт, TableView мастера не простирающийся под панелью навигации.
  • Когда и только если показывает мастер в портретном режиме, а затем вращается назад, глих меняется, так что теперь мастер выходит за панели, а детали больше не появляются.
  • Если не раскрывая мастера в портрете, вы можете вращать столько раз, сколько вы хотите, не изменяя поведение
  • Это происходит только на устройствах, которые могут показать мастер и детали одновременно
  • Это происходит только при вложении через UITabBarController

расспрашивает UISplitViewController:

  • Почему хозяин и деталь не ехр правильно ли под их навигационной панелью?
  • Почему это происходит только на iPad/iPhone Plus, а не на обычных iPhone (там все работает точно так, как ожидалось)?
  • Есть ли какие-либо исправления, которые я мог бы применить, чтобы сделать эту работу на iPad?
  • Есть ли лучший подход к дизайну, чем использование TabBar с встроенным потоком master-detail? Для меня TabBar просто кажется правильным переключаться между различными типами контента в моем приложении, и я не хочу иметь полное табличное представление ширины на iPads. SplitViewController также представляется правильным подходом к отображению моего контента ...

ответ

0

5 месяцев спустя для решения проблемы все еще нет. Более того, когда я снова спотыкался об этом вопросе при разработке другого приложения, я нашел эту старую должность с 2015 года той же проблемой: Navigation bar for split view controller is darker when inside a tab bar controller

Так что, я думаю, Apple не намерена устанавливать свои собственные контроллеры, и мы, разработчики, , Единственный способ, которым мы можем иметь UITabBar внизу, показывая UISplitViewController выше с надлежащим просвечивающим UINavigationBars, - это реализовать наши собственные контроллеры контейнеров.

Я, наконец, решил проблему, используя простой UIViewController с UITabBar, закрепленным снизу, с использованием API-интерфейса UIViewController для отображения/скрытия моих UISplitViewControllers.

Смежные вопросы