Как интегрировать панель вкладок с интерфейсом, похожим на Springboard? - PullRequest
0 голосов
/ 28 июля 2011

Мы являемся университетским отделом, разрабатывающим приложение для внутреннего распространения через Apple Enterprise Enterprise Program (его не будет в App Store). Он будет содержать «подпапки» для таких вещей, как поиск в справочнике, адреса клиник и номера телефонов и т. Д. Мы разработали его с главной страницей в стиле Springboard со значками, которые будут вызывать отдельные подпапки (аналогично Facebook и многим университетским приложениям, которые мы прочитали).

Я создал главную страницу сетки значков с помощью UINavigationController, чтобы он имел структуру UIViewController, где я могу вернуться на главную страницу, вытолкнув все контроллеры представления из стека:

popToViewController:[[self.navigationController viewControllers] objectAtIndex:0]

Мы хотели бы иметь возможность использовать UITabBarController в некоторых из подпапов, но сталкиваемся с ограничением в объединении интерфейсов контроллера представления, что контроллер навигации не должен включать контроллер панели вкладок. Это ограничение имеет смысл в том, что контроллер панели вкладок разработан таким образом, чтобы он оставался постоянным во всем приложении.

Однако для наших целей «приложение» - это действительно каждый отдельный «подпап», который должен начинаться с чистого листа. Используя UINavigationController с самого начала, мы отказались от возможности иметь подпап с UITabBarController. Рекомендации Apple по разработке хорошо подходят для приложений, которые предназначены для выполнения тесно связанного набора связанных вещей, но для нас важно упаковать несколько вложенных приложений в одно приложение для облегчения их внутреннего распространения и использования.

Есть ли лучший способ встроить контроллер представления в главную страницу, похожую на Springboard, которая позволит мне загружать либо UINavigationController, либо UITabBarController для подпрограмм? Я знаю, что это не то, для чего были созданы контроллеры модального представления. Будет ли возможно использование одного из них на главной странице для запуска подпрограмм?

1 Ответ

1 голос
/ 28 июля 2011

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

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

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

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