Нет необходимости создавать подклассы, как указано в приложении doc функция делегирования:
tableView:willSelectRowAtIndexPath:
должен сделать трюк
EDIT:
Ниже вы найдете некоторый код, который должен продемонстрировать идею использования делегата. Обратите внимание, что этот код не проверен, так как в данный момент я не нахожусь перед моим кодом.
-(void)willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (prevIndexPath != nil) {
UITableViewCell* prevCell = [self.tableView cellForRowAtIndexPath: prevIndexPath];
prevCell.textLabel.textColor = [UIColor black]; // your initial color here
}
UITableViewCell* cell = [self.tableView cellForRowAtIndexPath: indexPath];
cell.textLabel.textColor = [UIColor green];
prevIndexPath = indexPath;
}
Убедитесь, что для протокола UITableViewDelegate установлен управляющий класс, который управляет вашим TableView, и установите для него tableViews.delegate.
Чтобы запустить этот код, вы также должны определить свойство или переменную с именем prevIndexPath. В этой ячейке содержится ранее выбранная ячейка, необходимая для возврата к ячейке ее первоначального цвета.