Внедрите tableView:didSelectRowAtIndexPath:
в свой делегат табличного представления, возьмите ячейку, выбранную с помощью [tableView cellForRowAtIndexPath:indexPath]
, и установите для ее аксессуара значение UITableViewCellAccessoryCheckmark
.
Если вы хотите реализовать нечто похожее на многозначное значениеВ представлении таблицы в приложении «Настройки» я использую свойство для отслеживания того, что уже выбрано:
@property (nonatomic, retain) NSIndexPath *selectedIndexPath;
В том же методе делегата я убираю галочку с ячейки при выборе, добавляюпоставьте галочку в ячейке, к которой вы прикоснулись, и обновите свойство, указав индекс этой ячейки:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:self.selectedIndexPath];
[oldCell setAccessory:UITableViewCellAccessoryNone];
UITableViewCell *newCell = [tableView cellForRowAtIndexPath:indexPath];
[newCell setAccessory:UITableViewCellAccessoryCheckmark];
[self setSelectedIndexPath:indexPath];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
Чтобы сделать еще один шаг вперед, вы можете найти способ сохранить путь индекса в своем приложении (возможно, используя NSUserDefaults
, а в tableView:cellForRowAtIndexPath:
примените флажок к любой ячейке, которая соответствует этому пути индекса, так что ваш флажок отображается при загрузке представления.