2015-08-17 2 views
2

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

TableViewController:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

static NSString *cellIdentifier = @"Cell"; 



Cell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
NSLog(@"cellIdentifier = %@",cell); 
if (cell == nil) { 
    cell = [[Cell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
    NSLog(@"cellIdentifier = %@",cell); 

} 
      cell.nameLabel.text = [array objectAtIndex:indexPath.row]; 


return cell; 

cell.h

@interface Cell : UITableViewCell 

@property (nonatomic,weak) IBOutlet UILabel* nameLabel; 

Я импортировал cell.h в viewcontroller.m.
Я назвал идентификатор-идентификатор прототипа ячейки «Cell» и класс прототипа ячейки «Cell» и связал текстовую метку в ячейке прототипа с именемLabel.

Проблема:
cell.nameLabel.text всегда возвращает ноль значение, даже если [array objectAtIndex:indexPath.row] возвращает строку.

ответ

4

Попробуйте присвоить имя CellIdentifier вместо ID восстановления.

CellIdentifier - это способ пометить tableViewCells. Это значит, что uitableView может узнать, какой uitableviewcell вытащить, когда ему нужно его повторно использовать.

+0

Спасибо .. это сработало. Я перепутал idID с CellIdentifier. – Ran94

0

Вы должны установить ячейку ReuseIdentifier вместо RestorationID. Мне любопытно, что вы не установили ReuseIdentifier и не получил аварии :)

Кстати, если вы используете пользовательские ячейки с XIb, вы всегда должны зарегистрировать его в UITableView экземпляр в viewDidLoad:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self.tableView registerNib:[UINib nibWithNibName:@"Cell" bundle:nil] forCellReuseIdentifier:@"Cell"]; 
} 
0

Убедитесь, что сделал это шаги:

  1. определить новый класс для пользовательской ячейки, должен быть UITableViewCell типа
  2. Добавить свойство IBOutlet для вашей этикетки в классе пользовательских ячеек
  3. Установить связь между свойством выпускного и наклейкой
  4. Установите тип класса пользовательской ячейки, выбрав ячейку прототипа и перейти в Identity Inspector
  5. Изменить код для ссылки на свой собственный типа клеток вместо UITableViewCell

Кроме того, вы должны использовать CellIdentifier вместо RestorationID.

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