2015-07-08 2 views
0

Я не могу понять, почему мои UILabels в моем обычном TableViewCell ноль в CellForRowAtIndexPath. Я использовал тот же метод, что и для предыдущего TableView в другом представлении Controller. Вот то, что я уже проверил:Отображение UILabel (null) в пользовательском UItableviewcell

  • Сотовый Стиль Пользовательские
  • Cell имеет уникальный идентификатор «profilecell» класса
  • Cell является желаемого пользовательского типа источника
  • данные и делегированных связаны с видом контроллер
  • Каждый из 5 кнопок/этикеток подключен к соответствующему собственности в пользовательском классе выбран
  • Dynamic Прототипы

Я могу изменить цвет фона ячейки и заполнить textLabel.text - это всего лишь мои UILabels, которые не заполнены.

Адрес CellForRowAtIndexPath. Это тот же самый метод, что и мой другой TableVC, который работает. Кроме того, мне не нужно на самом деле повторно использовать эту настраиваемую ячейку, должен ли я использовать другой метод?

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

static NSString *CellIdentifierProfile = @"profilecell"; 
ProfileSection0TableViewCell *profilecell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierProfile]; 

    if (profilecell == nil) { 
     profilecell = [[ProfileSection0TableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifierProfile]; 
    } 

    if (indexPath.section == 0) { 
     [profilecell setBackgroundColor:[UIColor colorWithRed:54/255.0f green:61/255.0f blue:147/255.0f alpha:1.0f]]; 

     if (indexPath.row == 0) { 
      profilecell.labelName.text = _userProfile.fullName; 
      NSString *test = [NSString stringWithFormat:@"%@", profilecell.labelName.text]; 
      NSLog(@"text %@", test); //shows that label is (null) 

      profilecell.labelName.textColor = [UIColor whiteColor]; 

      //profilecell.labelSpecialty.text = _userProfile.specialty; 
      //profilecell.labelSpecialty.textColor = [UIColor whiteColor]; 

     } 
    } 
    return profilecell; 
} 

Большое спасибо.

.h файл:

@interface ProfileSection0TableViewCell : UITableViewCell 
    @property (nonatomic, weak) IBOutlet UILabel* labelName; 
    @property (nonatomic, weak) IBOutlet UILabel* labelSpecialty; 
    @property (nonatomic, weak) IBOutlet UILabel* labelCurrentRole; 
    @property (nonatomic, weak) IBOutlet UILabel* labelPosition; 
    @property (nonatomic, weak) IBOutlet UIButton* facePicture; 
    @end 

.m файл:

@implementation ProfileSection0TableViewCell 
    @synthesize labelName, labelSpecialty, labelPosition, facePicture, labelCurrentRole; 

    @end 

EDIT:

Похоже ProfileSection0TableViewCell правильно распределена, но член вары внутри клетки равны нулю. А в торговых точках, вот соединения:

  • facePicture - Кнопка
  • labelName- UILabel "человек"
  • labelPosition - UILabel "позиция"
  • Элемент списка - UILabel "специальность"
  • labelCurrentRole - UILabel названием школы
+0

Что можно сказать о значении переменной '_userProfile.fullName' и вы можете поделиться тем, как вы настроите' UILabel' _labelName_ в пользовательских 'UITableViewCell' класса _ProfileSection0TableViewCell_ – Aladin

+0

_userProfile.fullName не равно нулю - он имеет все правильно данные в объекте – khajj

+0

Согласно вашему комментарию после 'NSLog', ваш тест показывает, что' NSString * 'named' test' является 'nil', а не том, что метка' labelName' ячейки является 'nil'. Вам нужно копать немного глубже. Вы уверены, что 'profileCell' также не' nil'? Как насчет IBOutlets в ячейке? Правильно ли они подключены? – Aaron

ответ

1

либо _userProfile.fullName является nil или profilecell.labelName является nil

Если вы сделали ячейку в построителе интерфейса, правильно ли подключили розетку к labelName?

+0

Согласен, как вы устанавливаете '_userProfile.fullName'? Это, по-видимому, слабое звено в вашем коде, не видя, где установлена ​​эта переменная. –

+0

_userProfile - это свойство в TVC, заполненное данными jSON, и полное имя имеет в нем правильный текст, когда я просматриваю его с помощью отладчика. Я также смог установить cell.TextLabel.text в _userProfile.fullName без проблем – khajj

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