Как сделать uitableviewcell недоступным

Я собираю строку поиска, основанную на 4 tableviewcells, каждая ячейка открывает подзаголовок и загружает кучу данных, которые пользователь выбирает, чтобы установить ячейку предыдущего вида.

Существует порядок, в котором эти ячейки должны быть установлены так, чтобы каждый предшествующий список данных в подвью был связан с набором данных в родительском представлении.

то есть. в первой ячейке вы выбираете тип автомобиля, в следующей ячейке вы смотрите на модели, относящиеся к типу выбранного автомобиля.

В стороне В основе моего вопроса - как сделать ячейку неизбираемой до тех пор, пока не будут установлены предыдущие ячейки /s.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//...
if (indexPath.section == 0) 
    {

if (indexPath.row == 0) // <<--- what could I put in here.... 
        {
//...
}

} }

Ответ 1

Запретить ячейку отслеживать любое взаимодействие:

[cell setUserInteractionEnabled:NO];

или разрешить взаимодействие, скрыть цвет выделения, и при нажатии ничего не делать.

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

- (void) tableViewDidSelectRow.... {
    if(indexPath.row == indexOfCellWithNoUserInteraction) {
        //do nothing
    }
}

Ответ 2

Используйте tableView:willSelectRowAtIndexPath:. Возвращает нуль для строк, которые вы не хотите выбирать.

Ответ 3

Синтаксис Swift

cell.selectionStyle = UITableViewCellSelectionStyle.None