Как мне добавить вложенный просмотр UITabBarController в UINavigationController

#objective-c #cocoa-touch #uinavigationcontroller #uitabbarcontroller

#objective-c #cocoa-touch #uinavigationcontroller #uitabbarcontroller

Вопрос:

Я новичок в Objective-C и Cocoa и с некоторым успехом пробую свой путь через несколько руководств. Меня беспокоит одна задача. Я пытаюсь создать корневой контроллер представления, который является контроллером навигации, как указано в этом руководстве:

http://fuelyourcoding.com/iphone-view-switching-tutorial/

На второй загружаемой странице я хотел бы иметь возможность загружать вложенный просмотр, который является TabBarController. Соответствует ли это рекомендациям по просмотру iOS. Возможно ли это? Если да, может ли кто-нибудь дать несколько фрагментов кода и объяснить необходимые экземпляры и соединения в IB? Заранее благодарен за вашу помощь!

Ответ №1:

Нет, вы не должны помещать UITabBarController в стек UINavigationController.

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

Из руководства по программированию контроллера View от Apple — Контроллеры панели вкладок:

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

Ответ №2:

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