Как включить контроллер панели вкладок в рабочий процесс контроллера навигации?

Мне дали дизайн со следующим рабочим процессом:

  • Пользователь регистрируется в приложении
  • После успешного входа в систему пользователь видит табличное представление с строками данных
  • После щелчка на строке данных пользователь переходит к контроллеру вида с вкладкой inteface. Каждый контроллер представления в интерфейсе с вкладками обеспечивает глубокое погружение в аспект данных, показанных в виде таблицы.
  • На любой вкладке пользователь может нажать кнопку «Назад» и вернуться к просмотру таблицы.

Основываясь на этом описании, мне кажется, что для приложения требуется контроллер контроллера корневого контроллера для входа в систему и табличное представление, а затем при нажатии на строку таблицы приложение должно использовать контроллер табуляции для глубокого погружения данных.

Кажется, я не могу добавить UITabBarController в контроллер навигации, используя раскадровку. Кроме того, я нашел другие сообщения SO, которые задают аналогичный вопрос, но ни один из представленных ответов не кажется актуальным или не подходит для этого рабочего процесса с использованием современных (iOS7 / 8) лучших практик. Есть ли способ выполнить этот рабочий процесс? Если этого не произойдет, есть ли краткое объяснение, которое я мог бы использовать для информирования дизайнера и заинтересованных сторон?

  • Как добавить контроллер панели вкладок в приложение на основе навигационного контроллера?
  • Контроллер панели вкладок внутри контроллера навигации или общий доступ к корневой панели навигации

Я проверил ваши требования.

Несмотря на то, что Apple Inc. не рекомендована для обычных случаев использования,

https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/TabBarControllers.html#//apple_ref/doc/uid/TP40011313-CH3-SW2

Но это может быть легко достигнуто путем некоторой работы по достижению предложенного принципа проектирования с помощью следующих шагов.

  1. Создайте подобный дизайн в панели рассказов, обратите внимание, что навигационный контроллер находится перед экраном входа в систему.

введите описание изображения здесь

  1. Реализовать следующие методы списка, чтобы запрограммировать специальную вкладку в виде списка.
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"test" forIndexPath:indexPath]; cell.textLabel.text = [NSString stringWithFormat:@"%ld", (long)[indexPath row]]; return cell; } 
 (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UITabBarController *tbc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainTabbedViewController"]; tbc.selectedIndex= (long)[indexPath row]; [self showViewController:tbc sender:self]; } 
  1. Если размер списка динамический, вы также можете создавать элементы табуляции.

https://24hrstech.wordpress.com/2012/08/19/create-tabbarcontroller-programmatically/

Я использовал аналогичную функциональность для приложения, над которым я сейчас работаю. В моем приложении, Снимок экрана моих контроллеров просмотра

  1. У меня есть логин и регистрация в контроллере навигации, и как только регистрация / регистрация завершена успешно, она переходит к другому контроллеру навигации, который имеет табличное представление.

  2. При щелчке по ячейке «Туризм» в таблице я отвечу в контроллер панели вкладок с вкладками, имеющими разные сведения о 4 разных местах. На любой вкладке вы можете вернуться к основному представлению таблицы, которое появляется после успешного входа в систему, нажав кнопку «Назад» на панели навигации.

    Если это то, что вам нужно, я следил за контроллером панели вкладок «вставлять», как показано в приведенных выше ответах. Он отлично работал для меня. Мое приложение находится в портретном режиме. Я слышал, что это создает проблему в ландшафтном режиме. Я новичок, и я не пробовал то же самое в ландшафтном режиме.

    Вставить в новый контроллер навигации для представления таблицы после контроллера входа в систему. Я использую то же самое в своем приложении.

Вот что вам нужно сделать.

Здесь я использовал кнопку для навигации, поскольку я не создал представление с полным описанием, но не нужно привязывать кнопку с помощью Table View Controller или tabbar.

1.) Выберите «Просмотр контроллера», а затем перейдите в « Редактор» > « Вставить» > « Контроллер навигации»

введите описание изображения здесь

2.) Контроллер контроля привязки с контроллером табличного представления.

введите описание изображения здесь

3.) Дайте идентификатор для перехода, чтобы вы могли вызывать выполнение segue на основе успеха входа.

введите описание изображения здесь

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

введите описание изображения здесь

5.) Наконец, ваш рассказ будет выглядеть.

введите описание изображения здесь

6.) Результат

введите описание изображения здесь

Надеюсь, это поможет решить вашу проблему.

Apple рекомендует использовать UITabBarController в основном в качестве контроллера корневого представления.

В вашем случае я предлагаю использовать UISegmentedControl для просмотра обычного UIViewController вместо UITabBarController . С некоторой логикой вы можете отображать разные виды в предлагаемом UIViewController соответствующем сегменту UISegmentedControl который нажат.

Более того, если вы используете навигационный контроллер, вы можете встроить UISegmentedControl в панель навигации в качестве заголовка. (См. Вкладку «Повторы» в приложении «Телефон».

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

вы можете проектировать свой интерфейс так

введите описание изображения здесь

  • сделать контроллер навигации в качестве начального контроллера представления
  • второе представление для вашего экрана входа в систему
  • третий вид – это представление таблицы для отображения ваших данных
  • и, наконец, контроллер таблеток с контроллерами элементов управления

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

Несмотря на выполнимость, не рекомендуется вставлять панель вкладок внутри панели навигации. Я придерживаюсь принципов Apple, и пользователи используют панель вкладок в качестве корневого контроллера.

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


От Apple :

Перед созданием интерфейса панели вкладок вам нужно решить, как вы собираетесь использовать интерфейс панели вкладок. Поскольку он налагает на ваши данные всеобъемлющую организацию, вы должны использовать ее только по следующим причинам:

  • Установите его непосредственно в качестве контроллера корневого представления окна.
  • Установите его как один из двух контроллеров представления в интерфейсе с разделенным представлением. (только iPad)
  • Представьте это модально с другого контроллера.
  • Отобразите его из popover. (только iPad)

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

Также можно представить контроллер панели вкладок, если очень конкретная потребность делает это стоящим. Например, вы можете представить контроллер панели вкладок по модулю, чтобы отредактировать некоторый сложный набор данных, который имел несколько различных наборов параметров. Поскольку модальный вид заполняет все или большую часть экрана (в зависимости от устройства), наличие панели вкладок будет просто отражать выбор, доступный для просмотра или редактирования данных, представленных в модальном формате. Избегайте использования панели вкладок таким образом, если доступен более простой подход к проектированию.

Вы не можете нажать TabBarController из ячейки представления таблицы, поскольку «Push теперь лишен». Вы можете выполнить следующие шаги в раскадровке:

  1. Возьмите контроллер начального контроллера навигационного контроллера.
  2. Добавьте tableview в качестве контроллера корневого представления.
  3. Затем добавьте TabBarController в раскадровку.
  4. Затем щелкните правой кнопкой мыши на таблице TableView и привяжите выделение ячейки tableview к TabBarController с помощью «Показать».

Изображение, показывающее рабочий процесс

Вы можете использовать MHCustomTabBarController. Он построен с API API пользовательских контейнеров Apples и может быть вложен в ваш навигационный контроллер.

  • UITabBar setTintColor не работает после
  • Когда я переключаю массив tabBarItems в iOS6, почему я получаю пустой экран?
  • iOS TabBarController / inits ViewControllers, с помощью которого init-метод?
  • Как скрыть панель вкладок iOS для определенного индекса вкладки и вкладки отображается назад, когда экран коснулся?
  • Отклонение Представленный в режиме просмотра вид делает вкладкой (например, сброс)
  • Настройка moreNavigationController в iOS 7
  • Кнопка Center Raised в закладке iOS
  • Несколько экземпляров одного и того же TabBarController после Modal Segue iOS
  • iphone - Как вызвать функцию каждый раз, когда изменяется вкладка?
  • Выполните команду segue на другой контроллер навигации, не показывая панель вкладок
  • Мгновенный контроль контроллера Swift 3 Tab Bar Controller
  • Давайте будем гением компьютера.