2012-06-17 5 views
3

Я пытаюсь подключить свой DataSource и делегат UITableView к базовому классу ViewController через раскадровку. Я смог легко подключить свои IBActions и IBOutlets, но это оказалось более сложным.Подключить UITableView DataSource/Delegate к базе UIViewController class

Правильный метод создания экземпляров методов делегата/источника данных, а затем вызов тех же методов на супер?

ТИА

+0

ctrahey в правильности приведенный ниже, и я буду отмечать его как таковые - однако одна часть отсутствует ответ заключается в том, что все, что вам нужно сделать, это установить делегат/источник данные в качестве фактического представления контроллера - так он имеет доступ к функциям базового класса. Была еще одна проблема, препятствующая работе моего списка. – Dakine83

ответ

13

Xcode будет проверять тип объектов вы пытаетесь подключиться. Таким образом, есть два предпосылок:

  1. Объект вашего класса должны «присутствовать» в раскадровке, которая обычно включает в себя установку пользовательского класса на UIViewController в инспекторе
  2. Класса вашего объекта должен объявите, что он соответствует правильным протоколам, прежде чем устанавливать соединения.

Если эти два критерия выполнены, вы должны быть в состоянии чтрл щелкните на UITableViewController и перетащить из этих соединений на объект вашего класса, либо в раскадровке или в списке объектов на левом ,

EDIT: Я добавил изображение с настройкой делегатов с помощью двухэтапного метода ctrl-щелчка по представлению таблицы, а затем перетаскивания из popover в контроллер, соответствующий протоколу. Этот метод работает как с представлением списка слева, так и с графическими представлениями в рабочей области. Ответ

Setting a table view's delegates

+0

Если я читаю вас правильно, я бы не согласился с вашим первым моментом - вы можете подключать элементы к классам не в раскадровке или инспекторе, если они являются базовым классом вашего vc. Я делаю это, показывая помощник редактора, а затем вручную выбирая базовый класс для моего контроллера представления. Затем я могу ctrl + кликнуть на этот класс. Если я неправильно прочитаю ваши извинения. Однако способность, которую я только что описал, заставляет меня задаться вопросом, не существует ли способа создания делегатов и источников данных так же. Я объявляю правильные протоколы как на базовом, так и на дочернем классе, но я не уверен, что это необходимо для дочернего класса. – Dakine83

+1

Для пояснения, что вы описываете: «Я делаю это, показывая помощника редактора, а затем вручную выбирая базовый класс для моего контроллера представлений», - это именно то, что я имею в виду, создав объект вашего класса «присутствовать» в раскадровке. –

+0

А, справедливо. Возможно, я просто не знаю, куда отбрасывать ctrl + click - с делегатами/источниками данных нет IBAction или IBOutlet, созданных в файле .h, - как вы говорите, я обычно использую инспектор и бросаю его на свой контроллер представления , Но если это не вариант, то где еще я могу его отбросить? – Dakine83

Смежные вопросы