Создать панель вкладок в части приложения на основе навигации - PullRequest
0 голосов
/ 15 июля 2011

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

Ответы [ 3 ]

0 голосов
/ 19 июля 2011

Как отметил @Jolly good, Apple HIG предлагает не делать таких реализаций.

Единственный другой способ, который я могу предложить, это попытаться реализовать собственный контроллер представления, который выглядит / ведет себя как tabbarcontroller, и использовать это.

Еще один хак, о котором я могу подумать, не уверен, сработает ли он или если это возможно, создайте tabbarcontrller обычным способом, а затем установите свойство hideBottomBar и сделайте нижнюю панель видимой, только когда вы хотите, чтобы она была видимой.

0 голосов
/ 19 июля 2011

Возможно, несмотря на документацию, которую @Jolly хорошо процитировал.

В качестве примера из реального мира позвольте мне описать мою игру. Он состоит из UITabBarController (UITBC) и UINavigationController (UINC). «Основным» окном игры является Root-представление UINC, и когда игра активна, она скрывает и панель вкладок, и панель навигации, чтобы максимизировать использование экрана (не так, как для iPad, но все же ...) .

Когда игра бездействует (ставится на паузу, между раундами и т. Д.), Она помещает UITBC на панель навигации. Это также говорит UITBC сделать определенный VC выбранным. Это позволяет получить доступ к дополнительным экранам («О программе», «Счета», «Инструкции», «Настройки» и т. Д.), И игрок может перемещаться по панели вкладок. В дополнение к дополнительным представлениям на панели вкладок находится игровой контроллер, который просто извлекает UITBC из панели навигации, чтобы вернуться к игровому виду, чтобы сделать паузу, перейти к следующему раунду и т. Д. (Очевидно, что UITBC кэшируется в игровой ВК, поэтому его можно отодвинуть при необходимости.)

Используя эту логику, можно смешивать и сопоставлять контроллеры панели вкладок и навигационной панели для сложной навигации. Вы можете сойти с рук для игр; просто убедитесь, что любое неигровое приложение следует Apple HIG, чтобы не запутать пользователя.

Надеюсь, это поможет.

0 голосов
/ 16 июля 2011

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

Правильный шаблон проектирования для вкладок с навигацией?

EDIT


Из Документация UITabBarController

Поскольку класс UITabBarController наследуется от Класс UIViewController, контроллеры панели вкладок имеют свое собственное представление о том, что доступен через свойство просмотра. При развертывании панели вкладок интерфейс, вы должны установить это представление в качестве корня вашего окна. В отличие от других контроллеров представления, интерфейс панели вкладок никогда не должен быть установлен как дочерний элемент другого контроллера представления.

...