2013-04-18 4 views
-1

У меня есть следующая ситуация:Cast источника данных из Tableview

A UIViewController присвоенных UIViewController класса MyViewController.

В моем UIViewController У меня есть один UITableView. Однако dataSource этого UITableView не является MyViewController, а другим классом называется MyTableViewHandler.

Я создал выход для вида таблицы (MyTableView) в MyViewController, то есть я могу получить доступ к представлению таблицы из класса.

Теперь я хочу получить источник данных в виде таблицы в MyViewController, который должен быть объектом MyTableViewHandler.

То, что я пытался до сих пор:

MyTableViewHandler *myTableViewHandler = MyTableView.dataSource; 

и

MyTableViewHandler *myTableViewHandler = (MyTableViewHandler *)MyTableView.dataSource; 

Отладка показывает, что ссылки установлены на nil (0x00000000).

Буду признателен за вашу помощь, спасибо заранее!

+0

Как вы устанавливаете свойство dataSource 'MyTableView'? – ganzogo

+0

Сначала я добавил объект к построителю интерфейса и установил мой класс MyTableViewHandler на этом объекте. Во-вторых, я просто использовал построитель интерфейсов с возможностью щелчка на TableView и перетащил строку из моего TableView в объект. – Sirper

+0

Зачем голосовать? – Sirper

ответ

0

Вам не нужна отливка. Вероятно, вы пытаетесь получить доступ к MyTableView перед загрузкой представления. Вы можете позвонить по телефону [self view], чтобы загрузить представление или поместить этот код в некотором месте, например viewDidLoad.

+0

На самом деле, я уже пытаюсь использовать это в методе 'viewDidLoad' :(В дополнение к листингу я получаю предупреждение от компилятора, поскольку возвращаемый тип' dataSource' является 'id ' – Sirper

0

Сначала вам нужно создать экземпляр класса MyTableViewHandler (следующий код будет в MyViewController - viewDidLoad будет хорошим местом).

MyTableViewHandler * myTableViewHandler = [[MyTableViewHandler alloc] init]; myTableView.datasource = myTableViewHandler;

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