iPhone UITableView заполняется проверенными ячейками таблицы. Как? - PullRequest
0 голосов
/ 10 ноября 2009

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

Есть идеи?

Я думал, что это касается базовых данных, поскольку «сила» - это другая сущность в отношениях ко многим, кроме того, я потерян.

Ответы [ 2 ]

1 голос
/ 11 ноября 2009

Вы можете поддерживать проверку и снятие отметки «силовых» ячеек, используя NSMutableSet для отслеживания выбранных мощностей. Это работает независимо от того, используете ли вы Core Data или какой-либо другой метод для предоставления данных о полномочиях в UITableView.

Например, в реализации источника данных таблицы:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // do usual stuff here including getting the cell

    // determine the power from the IndexPath.row

    if ([selectedPowerSet member:power])
    {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    } else {
        cell.accessoryType = UITableViewCellAccessoryNone;
    }

    return cell;
}

и в реализации делегата таблицы (обычно одного и того же класса):

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // determine the power from the IndexPath.row

    if ([selectedPowerSet member:power]) {
        [selectedPowerSet removeObject:power];
    } else {
        [selectedPowerSet addObject:power];
    }

    [tableView reloadData];
}
1 голос
/ 10 ноября 2009

Если вы хотите реализовать иерархию представления, вы просто начинаете с проекта навигации. Контроллер табличного представления Superhero является вашим корневым контроллером, а табличное представление мощностей - вспомогательным контроллером.

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

Источник данных таблицы супергероев будет извлекать все сущности супергероя, а затем заполнять текст каждой ячейки именем каждого супергероя. Когда пользователь щелкает по герою, представление таблицы супергероев сообщает, что navcontroller помещает представление таблицы мощности в стек и передает выбранный объект супергероя источнику данных представления таблицы мощности. Источник данных power tableview будет затем заполнять таблицу полномочиями в отношениях с сущностью супергероя. Это также создало бы властных сущностей по мере необходимости и добавило бы их к отношениям.

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

Я предлагаю вам начать с UINavigationController .

...