7

Я думаю, что мне не хватает чего-то простого, но я не могу понять, что это такое.Iphone: TabView + TableView

Я пытаюсь настроить приложение с помощью UITabViewController, а одна из вкладок будет иметь UITableView и UISearchBar (но не контроллер навигации). Я установил UITabViewController со всеми вкладками в построителе интерфейса, а представления находятся в их собственных xib-файлах. Файл xib для вкладки с UITableView настроен и подключен следующим образом.

Материал в браузере: владелец файла (Class мой пользовательский класс, который является потомком UITableViewController) Вид -> Просмотр

View (class UIView, reference view -> File's owner) contains: 
     UITableView (if i try and set references to the data source/delegate, the app breaks) 
     UISearchBar (unconfigured at the moment) 

Эта установка отображает все детали и не запирать, но Я не могу назначить DataSource без его сбоя, когда я пытаюсь загрузить вкладку с помощью UITableView. Что я должен сделать, чтобы получить данные в этой таблице, либо в IB, либо в коде? Мои идеи заключаются в следующем:

  1. Внедрение пользовательского класса UITableView, подключение к представлению таблицы в IB или к настраиваемому контроллеру tableview в Xcode.
  2. Фунт голову или ноутбук против стены, пока она не работает.

Update: Вот ошибка имитатор толкает на консоль при подключении источника данных Tableview в и делегата Файл владельца (кто есть класс мой заказ tableviewcontroller).

2/14/09 6:59:12 PM TabBarWillbeRight [33172] * Нагрузочное приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: «* - [UIViewController Tableview: numberOfRowsInSection]: непризнанный селектор отправлено к примеру 0x523760

ответ

1

Если вы не можете назначить DataSource без его сбоя, это говорит о том, что некоторые из методов делегирования DataSource не были реализованы.

В частности, класс, который вы назначаете в качестве источника данных следует осуществлять UITableViewDataSource

+0

Я реализовал numberOfSectionsInTableView, numberOfRowsInSection и cellForRowAtIndexPath, и они все возвращаются 1, 1, и ячейка с static cell.text. Я пропустил метод? – 2009-02-15 00:14:43

+0

Нет, это должно быть так. Хотя, если быть точным, это tableView: numberOfRowsInSection и tableView: cellForRowAtIndexPath –

+0

право - вот как они настроены - так что же должно быть моим источником данных/делегатом ... Я попытался установить его с помощью setDataSource: и setDelegate тоже , Возможно, мне не хватает некоторых настроек в AppDelegate.m? – 2009-02-15 00:23:32

0

Вы уверены, что реализует UITableViewDelegate и UITableViewDataSource классов вашего класса? Также проверьте объявление своего диспетчера просмотров. Ваш .h-файл должен быть примерно таким

@interface MyClass:UIViewController <UITableViewDelegate,UITableViewDataSource> 

Все остальное, кажется, на месте. Если объявление класса не указывает, что оно реализует UITableViewDelegate и DataSource, вы получите исключение, как только вы установите источник данных.

+0

Хммм - похоже, что это возможно. С тех пор я создал обработчик интерфейса и создал все соответствующие методы программно. Мораль истории: черные ящики - не забава. – 2009-02-17 08:30:04

+0

Даже если вы не используете IB, убедитесь, что в объявлении класса указано, что класс реализует UITableViewDelegate и UITableViewDataSource. – lostInTransit

24

У меня была аналогичная проблема с тем же сообщением об ошибке. Простое решение заключалось в том, чтобы щелкнуть на представлении в TabBarController (серый прямоугольник, который говорит «просмотр загружен с ..») в IB, и изменить класс элемента на имя класса моего TableViewController.

+1

Прямо на месте! Благодаря! –

+0

Работал для меня тоже. Благодаря! – lguy

+0

Работает для меня, потрясающе !!!! : D – tarnfeld

2

У меня была та же проблема. 1. Убедитесь, что в вашем представлении реализованы методы источника данных 2. В IB установите идентификатор Class для вашего представления классу, который реализует методы источника данных. 3.Щелкните правой кнопкой мыши на представлении в IB и проверьте источник данных подключен к Files Владелец, не Посмотреть Hooking up TableView in IB

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