Перезагрузить UITableView условно на основе SegmentedControl

Я хотел бы перезагрузить табличное представление условно на основе значения сегментированного элемента управления при нажатии кнопки.

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

Но я хотел бы иметь возможность вернуть приложение в состояние до нажатия кнопки, возможно, сделав -mutableCopy массива, а затем удалив из него элемент.

Какие возможные варианты у меня есть, чтобы указать, что элемент нельзя выбрать снова? Серым цветом? Изменение цвета? Удалить строку?

    if (selectionControl.selectedSegmentIndex == 0) {
        int r = arc4random() % [[[APP_DELEGATE itemsDictionary] objectForKey:category] count];
        NSLog(@"%i",[[[APP_DELEGATE itemsDictionary] objectForKey:category] objectAtIndex:r]);
    } else {
        //copyOfArray = [APP_DELEGATE.....]mutableCopy]; // Maybe?
        int r = arc4random() % [[[APP_DELEGATE itemsDictionary] objectForKey:category] count];
        NSLog(@"%i",[[[APP_DELEGATE itemsDictionary] objectForKey:category] objectAtIndex:r]);
    }
    [[[APP_DELEGATE itemsDictionary] objectForKey:category] removeObjectAtIndex:r];


    //[copyOfArray removeObjectAtIndex:r]; // Maybe?
    [self.tableView reloadData];
}

В каждом из методов tableView мне нужно будет проверить состояние selectionControl, прежде чем возвращать значение либо из APP_DELEGATE, либо из копии.

Спасибо.


person joec    schedule 23.10.2010    source источник


Ответы (1)


Я думаю, что я бы сделал доступ к элементу textLabel UITableCellView и установил серый цвет текста.

Вы можете реализовать tableView:willSelectRowAtIndexPath: для возврата NIL при нажатии этой строки, что сделает так, чтобы эта строка не могла быть выбрана.

person Brad    schedule 25.10.2010