Как создать пользовательский контейнер контроллера представления, используя раскадровку в iOS 5 - PullRequest
23 голосов
/ 14 ноября 2011

В iOS5 с использованием функции раскадровки я хочу создать собственный контейнер, в который будет встроено 2 ViewControllers.Например, встроить контроллер табличного представления, а также контроллер представления в один ViewController.

То есть один контроллер представления будет иметь 2 отношения:

  1. к контроллеру табличного представления
  2. для просмотра контроллера, который, в свою очередь, будет иметь 4 UIImage представление или UIButton в нем

Возможно ли создание такого типа отношений только с помощью функции перетаскивания раскадровки и не программно

Ответы [ 2 ]

14 голосов
/ 14 ноября 2011

, у вас должен быть только один контроллер вида для управления сценой.Однако у этого viewController могут быть два других контроллера представления, которые управляют определенными подпредставлениями на вашей сцене.Для этого вы создаете свойства в вашем viewController сцены, в вашем случае одно для вашего tableViewController и одно для вашего представления.Мне нравится держать вещи вместе, поэтому я делаю оба этих выхода viewControllers и создаю их в конструкторе интерфейсов.Чтобы создать их в построителе интерфейса, извлеките объект из библиотеки объектов и установите для его типа соответствующий viewController.Подключите его к соответствующему выходу, который вы только что создали в viewController вашей сцены. Примечание: это важно, в противном случае viewController будет выпущен, если вы используете ARC и завершите работу приложения.Затем подключите эти viewControllers к представлению, которым вы хотите, чтобы они управляли, и все готово.

В качестве альтернативы вы можете создать и запустить ваши viewControllers в ваших сценах viewController, если вы предпочитаете это делать.

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

Редактировать: При отражении это не очень хорошая идея, и на самом деле идет вразрез с HIG, вы должны поддерживать только один ViewController для каждого экрана контента и вместо этого попытаться создать подходящий класс представления и иметь единственныйКонтроллер представления имеет дело с взаимодействиями между различными представлениями.

0 голосов
/ 11 мая 2012

Есть способ сделать это, который не слишком хакерский. Он описан по следующему URL для UITabBarControllers, в котором вы можете использовать первый контроллер представления в списке для управления первым подпредставлением, а второй - для другого. Или, возможно, вы можете адаптировать код для работы с UISplitViewController.

http://bartlettpublishing.com/site/bartpub/blog/3/entry/351

По сути, он работает путем замены tabbarcontroller во время выполнения после того, как iOS закончит его настройку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...