#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 (или контроллер другого типа) по мере необходимости.