Несколько виджетов, использующих XCode Storyboard (или делающих это неправильно)?

Я начал новый проект XCode на основе Storyboard (iPad), который должен иметь примерно такой пользовательский интерфейс:

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

Сетевой код уже работает нормально, но у меня проблемы с взаимодействием с данными. Я создал следующий пользовательский интерфейс в XCode:

попытка создания раскадровки

Я не могу заставить UITableView на экране 2 иметь правильное UITableViewController, не будучи вынужденным в полноэкранном режиме с только UITableView на экране 2.

  • Могу ли я указать UITableViewController (или любой вид *Controller для виджетов, встроенных в представление таким образом?
  • В качестве альтернативы: есть ли предпочтительный другой способ обработки такого пользовательского интерфейса с использованием раскадровок?
  • Я просто слишком далеко захожу с раскадровкой и должен вернуться к «перьям» / программному созданию?

Изменить Ответ @jrturton правильный, небольшая картинка, дополняющая его дополнительную спецификацию:

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

Изменить Ой, опасность! Вы не должны перетаскивать на родительский элемент View, вы должны убедиться, что вы перетаскиваете его на родительский элемент View Controller, в противном случае плохие вещи могут случиться:

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


person Jacob Oscarson    schedule 28.05.2012    source источник


Ответы (1)


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

Однако не стоит беспокоиться — просто объявите, что ваш контроллер представления соответствует протоколам делегата и источника данных UITableView, подключите источник данных и методы делегата tableView к контроллеру представления и реализуйте методы. UITableViewController не является чем-то особенным в этом отношении — это может сделать любой объект.

Вы также можете определить выход табличного представления на вашем контроллере представления и подключить его к табличному представлению. Часто необходимо обращаться к табличному представлению вне методов делегата и источника данных.

person jrturton    schedule 28.05.2012
comment
Ты прав! (После того, как вы щелкнули правой кнопкой мыши и перетащили выход dataStore в родительский вид) - person Jacob Oscarson; 28.05.2012
comment
Да, извините, я забыл упомянуть о подключении розеток. Я обновлю ответ. - person jrturton; 28.05.2012