2010-08-30 3 views
1

Я просматриваю раздел «Навигация с таблицами» в Wrox «Профессиональное программирование iPhone с помощью MonoTouch от McClure и др., Подбирая основы создания иерархического интерфейса для iOS и запуская следующая проблема.MonoTouch: переменная UITableView null

Я создал новый «iPhone View с контроллером» файл (называемый ParametersViewController), удалил UIView от него, добавил UITableView, создал выход для него (tableView) и подключил «Владелец файла» выход Вид на UITableView, за учебник.

В RowSelected метод родительского вида этой точки зрения, я экземпляр мой ParametersViewController, вызывая конструктор по умолчанию, в котором я хочу, чтобы настроить источник данных табличного представления:

this.tableView.Source = new DataSource(this, new [] {"one", "two", "three"}); 

(DataSource является вложенным классом который наследуется от UITableViewSource)

Все компилируется и работает нормально, вплоть до момента, когда эта строка выполнена. Оказывается, что this.tableView имеет значение null, поэтому я получаю NullReferenceException.

tableView - это розетка для стола. Как это может быть null? Не могу ли настроить источник таблицы здесь в конструкторе? Если нет, то где это сделать?

+0

Кажется, нет заемщиков :-( – tomfanning

ответ

3

Решение это было

  • Не создавать выход под названием Tableview
  • сделать вид подкласс UITableViewController, вместо UIViewController
  • Обратитесь к свойству base.TableView моего UITableViewController, а не глупый выход, который я создал
0

Я не на 100% не понимаю, что вы делаете, но может быть, вам нужно получить доступ к вашему UITableView в методе ViewDidLoad UIViewController. В этот момент ваше представление NIB должно быть создано.

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

+0

Просто попробовал, что это не проблема. re код для обеспечения - это должно быть что-то глупое, что я сделал в Interface Builder. Я буду обновлять этот вопрос с помощью решения, когда в конце концов его найду. – tomfanning

+0

Можете ли вы заархивировать проект, загрузить его где-нибудь и опубликовать ссылку? – dommer

+0

Спасибо, но я решил это. Просто запутался. – tomfanning

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