2013-08-21 4 views
0

Я создаю подкласс класса UITableViewCell, который должен содержать 3 типа изображений: facebook twitter и linkedin. дело в том, что мне нужно знать, какая услуга поддерживает ячейка на данный момент, поэтому я попытался добавить свойство в класс под названием service, который является NSString.добавление свойства в подкласс UITableView

это, как я ставлю мою клетку к объявлению к столу:

static NSString *sCellIdentifier = @"sCell"; 

SocialTableViewCell *sCell = [tableView dequeueReusableCellWithIdentifier:sCellIdentifier]; 

sCell.service = @"service"; 

if (sCell == nil){ 
    NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"ExampleView" owner:nil options:nil]; 
    for(id currentObject in topLevelObjects) 
    { 
     if([currentObject isKindOfClass:[SocialTableViewCell class]]) 
     { 
      sCell = (SocialTableViewCell *)currentObject; 
      break; 
     } 
    } 
} 

if (indexPath.row == 0) { 
    sCell.serviceImage.image = [UIImage imageNamed:@"icon_Twitter.png"]; 
    sCell.service = @"twitter"; 
    return sCell; 
} 

я пытаюсь установить свойство как это:

sCell.service = @"twitter"; 

и когда я пытаюсь прочитайте его из метода awakeFromNib в классе SocialTableViewCell, я получаю null. что я должен сделать, чтобы справиться с этим?

+0

Параметр 'Метод awakeFromNib' вызывается перед тем, как вы установите' 'обслуживания собственности. – rckoenes

+0

ОК, какой метод я должен использовать? где я могу прочитать об этом? –

+0

Вы можете создать метод setter для свойства 'service' и обработать его там. – rckoenes

ответ

2

Метод awakeFromNib вызывается до того, как вы установили свойство service.

Вы можете использовать метод установки в service собственности:

-(void) setService:(NSString *)service { 
    // Set the value to the internal iVar 
    _service = service; 

    // Here you can do what you want with the service value like 
    self.titleLabel.text = service; 
} 
+0

спасибо! и где я должен проверить, какое значение имеет экземпляр? как метод viewdidload в uiviewcontroller –

+0

Вы можете сделать это и в настройщике. Для просмотров нет 'viewDidLoad'. – rckoenes

+0

Я пытаюсь загрузить состояние кнопок из значения, которое это свойство удерживает ... поэтому у меня есть метод «loadButtons», который я хочу вызвать –

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