Создание подкласса UIViewController с UITableView - PullRequest
0 голосов
/ 14 ноября 2011

Я пытаюсь создать подкласс UIViewController, который имеет встроенный UITableView и является UiTableViewDataSource и UITableViewDelegate.

Мастер-класс выглядит так:

@interface PFUIViewControllerWithTable : PFUIViewController     <UITableViewDelegate,UITableViewDataSource, RKObjectLoaderDelegate> {
UITableView *_tableView;
NSArray *_data;
}
@property (nonatomic,retain) UITableView *tableView;
@property (nonatomic,retain) NSArray *data;
- (void)configureCell:(PFRewardsUITableViewCell*)cell atIndexPath:(NSIndexPath *)indexPath;

и реализация содержит методы для заполнения табличного представления из свойства self.data.

В подклассе данные заполняются, и [self.tableView refresh] называется

@interface MySubclass : PFUIViewControllerWithTable <UITableViewDataSource,     UITableViewDelegate> {

}
- (void)loadObjectsFromDataStore;
- (void)loadLiveData;
- (void)configureCell:(PFRewardsUITableViewCell*)cell atIndexPath:(NSIndexPath *)indexPath;

Методы UItableViewDataSource никогда не вызываются в этой конфигурации. Делегат и источник данных настроены на мастер-класс. Мастер-класс заполняет представление таблицы из свойства self.data, которое изменяется подклассом.

Итак, как же подклассы такого представления?

Ответы [ 2 ]

0 голосов
/ 17 мая 2012

Используйте IBOulet для просмотра таблицы

Теперь проверьте в xib вашего контроллера представления, что табличное представление связано, а его делегат и источник данных предоставлены владельцу файла.

Теперь проверьте, что в массиве, который вы предоставляете для таблицы, есть содержимое

0 голосов
/ 18 ноября 2011

Убедитесь, что вы правильно устанавливаете свой делегат и источники данных.

Это ошибка:

PFUIViewControllerWithTable *controller = [[MySubclass alloc] init];
[controller.tableView setDelegate:controller];
[controller.tableView setDataSource:controller];

Все должно быть в порядке:

PFUIViewControllerWithTable *controller = [[MySubclass alloc] init];
[controller.tableView setDelegate:(MySubclass*)controller];
[controller.tableView setDataSource:(MySubclass*)controller];

Я верю, что там, где твоя проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...