Все още не съм намерил пример, който прави това. Клиентът иска приложение, базирано на навигация, където два раздела (по един навигационен екран) трябва да имат няколко изгледа, контролирани от лента с раздели. Имам затруднения с настройването на логиката за свързване на всички елементи и осигуряване на смисъл в потока (напр. натискането на бутона за връщане назад на лентата за навигация на някой от изгледите с раздели ще доведе обратно до същия екран).
Създайте лента с раздели като част от приложение, базирано на навигация
Отговори (3)
Отговорих на подобен въпрос неотдавна (ако разбирам правилно въпроса ви). Това ще добави лента с раздели като основен контролер и всеки раздел има свой собствен навигационен контролер.
Правилният дизайн модел за изгледи за навигация с раздели?
РЕДАКТИРАНЕ
От документация на UITabBarController
Тъй като класът UITabBarController наследява от класа UIViewController, контролерите на лентата с раздели имат свой собствен изглед, който е достъпен чрез свойството изглед. Когато разгръщате интерфейс на лента с раздели, трябва да инсталирате този изглед като корен на вашия прозорец. За разлика от други контролери за изглед, интерфейсът на лентата с раздели никога не трябва да се инсталира като дете на друг контролер за изглед.
Както @Jolly good спомена, Apple HIG предлага да не се правят подобни реализации.
Единственият друг начин, който мога да предложа, е да опитате да внедрите персонализиран контролер за изглед, който изглежда/се държи като контролер на табове и да използвате това.
Друг хак, за който се сещам, не съм сигурен дали ще работи или ако е възможно, създайте tabbarcontrller по обичайния начин и след това задайте свойството hideBottomBar и направете долната лента видима само когато искате да бъде видима.
Възможно е, въпреки документацията, цитирана от @Jolly good.
Като пример от реалния свят, позволете ми да опиша една моя игра. Състои се от UITabBarController (UITBC) и UINavigationController (UINC). „Основният“ прозорец на играта е основният изглед на UINC и когато играта е активна, тя скрива както лентата с раздели, така и лентата за навигация, за да увеличи максимално екрана (не е необходимо за iPad, но все пак...) .
Когато играта е неактивна (на пауза, между кръгове и т.н.), тя избутва UITBC върху лентата за навигация. Той също така казва на UITBC да направи определен VC избран. Това позволява достъп до допълнителните екрани (Информация, Резултати, Инструкции, Настройки и т.н.) и играчът може да навигира с помощта на лентата с раздели. В допълнение към допълнителните изгледи на лентата с раздели е контролерът на играта, който просто изважда UITBC от навигационната лента, за да се върне към изгледа на играта, за да отмените паузата, да отидете на следващия кръг и т.н. (Очевидно UITBC се кешира в игра VC, така че да може да бъде върнат назад, когато е необходимо.)
Използвайки този вид логика, е възможно да смесвате и съпоставяте контролери на лентата с раздели и лентата за навигация за сложна навигация. Можете да се разминете с това за игри; просто се уверете, че всяко приложение, което не е игра, следва HIG на Apple, за да не обърка потребителя.
Надявам се това да помогне.