Здесь нужно немного логики. Допустим, вы добавили это свойство в свой подкласс UITableViewController:
NSIndexPath *indexPathForCellInUtilityMode;
Когда пользователь запускает представление утилиты ячейки, ваша ячейка делает это:
NSIndexPath *cellIndexPath = [parentViewController.tableView indexPathForCell:self];
parentViewController.indexPathForCellInUtilityMode = cellIndexPath;
Тогда:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if ([indexPath compare:indexPathForCellInUtilityMode] != NSOrderedSame) {
//Do whatever you're normally doing in this method.
}
Таким образом, вы отключите выбор для затронутой ячейки, в то же время позволяя пользователю взаимодействовать с другими видимыми ячейками.