Изменение функциональности UITableView при нажатии кнопки - PullRequest
0 голосов
/ 12 марта 2012

Я пытаюсь найти лучший способ сделать это - у меня есть UITableView элементов, которые пользователь ранее выбрал и которые сохранены.Когда вы нажимаете на элемент, вы переходите на страницу с подробностями.Мне нужно иметь возможность щелкнуть кнопку под табличным представлением, которая перезагружает таблицу и меняет аксессуар так, чтобы он был отмечен галочкой, а не раскрытием, а затем пользователь может снять галочки с элементов и удалить их из списка, прежде чем щелкнутьеще одна кнопка, которая перезагружает обновленную таблицу и восстанавливает вспомогательное оборудование раскрытия.

Вопрос в том, как лучше всего «запомнить», каким образом обрабатывать перезагрузку таблицы после щелчка, чтобы она знала, как ее отобразить?Вы бы использовали NSUserDefaults для хранения флажка при нажатии кнопки или есть более элегантный способ сделать это?Думаю, я мог бы использовать состояние кнопки, находится ли она в том или ином состоянии, но я предполагаю, что есть что-то встроенное, что мне не хватает.

Надеюсь, что имеет смысл - спасибо.

1 Ответ

0 голосов
/ 12 марта 2012

Обычно у меня есть некоторый «модельный объект», и в зависимости от массива этих объектов я создаю таблицу.Моя cellForRowAtIndexPath выглядит следующим образом:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    InterestsCell *cell = (InterestsCell*)[tableView dequeueReusableCellWithIdentifier:kInterestsCellID];
    if (cell == nil) {
        ...
    }

    Interest *i = (Interest*)[self.interestsArray objectAtIndex:indexPath.row];
    cell.myTfSubview.enabled = i.isChecked; 

    return cell;
}

Если у вас нет модели, вы можете создать массив значений BOOL и хранить там флаги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...