iOS Используйте TabBar для изменения отображаемого вида

У меня есть основной TabBarController для моей основной навигации. На вкладке 1 у меня есть контроллер, на котором есть еще одна панель вкладок сверху. Я хотел бы иметь возможность переключаться между двумя представлениями в одном контроллере, если это возможно, с помощью этой панели TabBar.

Моя идея состоит в том, чтобы иметь в моей раскадровке ScrollView и TableView друг над другом, а затем использовать setHidden: на двух основных представлениях, когда выбрана соответствующая вкладка (переключить 1 скрыто, а другое показано).

Проблема, однако, в том, что в раскадровке я никогда не могу заставить их играть красиво. Когда я пытаюсь позиционировать 1 представление, оно всегда становится дочерним элементом представления, которое находится за ним. Например, мой ScrollView хорошо расположен, но затем, когда я перемещаю TableView в нужное положение, TableView становится дочерним элементом ScrollView, поэтому, если я скрою ScrollView, я никогда не смогу отобразить TableView.

В таблице сцен слева от раскадровки я могу расположить представления как дочерние элементы основного представления (правильно), при этом ScrollView или TableView не станут дочерними элементами другого (правильно). Но всякий раз, когда я это делаю, позиционирование, которое я сделал, теряется, и все вещи плавают неправильно.

Может быть, я плохо обдумываю это изменение взглядов или есть способ заставить раскадровку играть хорошо?


person shiznatix    schedule 05.03.2013    source источник


Ответы (1)


Если я вас правильно понял, вы хотите следующее:

  • TabBarController A — ваша основная навигация, допустим, у нее есть 3 вкладки A1, A2, A3.
  • TabBarController B — вложен во вкладку (например, A3) основной навигации, имеет 2 вкладки B1, B2.
  • B1 — прокрутка
  • B2 — представление таблицы

Для этого вам не нужно устанавливать скрытый, просто используйте TabBarController B для представления представлений так же, как это делает TabBarController A.

На скриншоте ниже показан макет раскадровки:

NB. Чтобы связать TableViewController с TabBarController в раскадровках, перетащите элемент управления из TabBarController в TableViewController и выберите «Переход отношений — контроллеры просмотра» во всплывающем меню.

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

person Pliskin    schedule 05.03.2013