Предполагая, что вы используете метод, подобный tableView:didSelectRowAtIndexPath:
(или есть другой способ получить индексный путь к ячейке), вы можете сделать что-то вроде этого:
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
UILabel *label = nil;
for(UIView *subview in cell.contentView.subviews) {
if([subview isKindOf:[UILabel class]]) {
label = (UILabel*)subview;
break;
}
}
if(label)
label.text = @"New text";
Это найдет первыйUILabel в ячейке и может не работать, если в вашей ячейке более одного ярлыка.Более надежный способ сделать это - установить тег метки при создании ячейки (это можно сделать в Интерфейсном Разработчике или в коде).Тогда вы можете найти ярлык, как это:
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
UILabel *label = nil;
for(UIView *subview in cell.contentView.subviews) {
if([subview isKindOf:[UILabel class]] && [subview tag] == kDetailLabelTag) {
label = (UILabel*)subview;
break;
}
}
if(label)
label.text = @"New text";