Разговор с UITableViewCell и UITableView из ViewController - PullRequest
0 голосов
/ 27 октября 2011

Я настроил табличное представление с пользовательской ячейкой в ​​моем контроллере представления раскадровки и хочу управлять им из моего класса ViewController. Я настроил ViewController, чтобы действовать как мой делегат. Когда я запускаю приложение, оно просто отображает пустой список и не вызывает мою единственную ячейку с ярлыком. Я ожидаю увидеть этот ярлык в списке. Я подключил источник данных и делегировал ViewController в раскадровке. Мои файлы .h и .m, как показано ниже, отредактированы для простоты.

Когда я запускаю его, я получаю 'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:' Так что похоже, что делегирование не работает должным образом. Что я пропустил? Нужно ли подключать ячейку к чему-либо?

@interface ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

@end



@implementation ViewController
...

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ReportItem"];
return cell;
}

@end

Ответы [ 2 ]

6 голосов
/ 27 октября 2011

Ваш звонок на [tableView dequeueReusableCellWithIdentifier:] возвращается ноль. Это может означать, что вы не установили идентификатор для своей пользовательской ячейки в Интерфейсном Разработчике (должен быть 'StateCell'). Этот параметр можно найти в инспекторе атрибутов при выборе настраиваемой ячейки в IB.

0 голосов
/ 27 октября 2011
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
    static NSString *CellIdentifier = @"StateCell";
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier ];
     if (cell == nil){
       cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                           reuseIdentifier:CellIdentifier] autorelease]
     }
   return cell;
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...