UITableViewController внутри UIViewController

Я новичок в iOS и objective-C, и у меня возникли проблемы с пониманием того, как работают контроллеры.

В моем коде у меня есть UIViewController (с моим настраиваемым контроллером, назначенным раскадрой) и внутри него вместе с другими объектами, я хочу, чтобы таблица обрабатывалась другим контроллером. Каков правильный способ сделать это?

Ответ 1

Вы можете сделать этот контроллер табличного представления контроллером дочернего представления вашего UIViewController. В раскадровке вы можете сделать это легко, перетащив контейнерный вид в представление контроллера, и это даст вам контроллер детского просмотра автоматически. Вы хотите удалить контроллер, который он дает вам (это просто UIViewController), перетащить контроллер табличного представления, перетащить управление из представления контейнера в контроллер табличного представления и выбрать "внедрить". Если вам нужно получить ссылку на этот контроллер табличного представления из UIViewController, вы можете сделать это в prepareForSegue - контроллер представления таблиц будет контроллером представления назначения segue, а prepareForSegue будет вызываться сразу после создания экземпляров контроллеров.

Ответ 2

Вы хотите использовать встроенный вид контейнера.

  • Перетащите "Вид контейнера" из боковой панели Interface Builder в представление. Это добавляет и связывает стандартный "содержащий" UIView/Controller.

  • Удалите весь UIViewController и View, который был автоматически добавлен и привязан к представлению контейнера (так как вам нужен вместо этого диспетчер представлений таблиц).

  • Перетащите UITableViewController на холст раскадровки.

  • Управлять перетаскиванием из представления контейнера в контроллер табличного представления. Выберите "Вставить", чтобы содержать UITableView в представлении контейнера.

Вы остаетесь с родительским представлением, теперь содержащим UITableView через представление контейнера. Контроллер для представления таблицы также находится на холсте раскадровки.

Table View Controller внутри контейнера

Ответ 3

Добавить UITableViewController в раскадровку и создать подкласс (новый файл) UITableViewController. В Storyboard перейдите к Identity Inspector и в поле типа имя класса созданного вами подкласса. После этого вы должны добавить свою логику приложений на основе ваших требований.

Ответ 4

Создайте еще один UITableViewController в раскадровке, перейдите к его инспектору и назначьте ему тот же самый класс UITableViewController, который вы создали до...