iphone: изменение статуса нескольких контроллеров сегмента одновременно в пользовательской ячейке - PullRequest
1 голос
/ 28 октября 2011

У меня есть tableView с пользовательской ячейкой (см. Изображение ниже.)

Если взять в качестве примера таблицу из трех строк, если пользователь меняет контроллер сегмента в строке 0 на «Да», могу ли я автоматически менять контроллеры сегмента в строках 1 и 2 на «Нет»

Я использую следующее для обнаружения изменения сегмента:

- (void)seg_changed:(id) sender {

cell=(switchCell*) [[sender superview] superview];

UITableView *table=(UITableView*) [cell superview];

NSIndexPath *path=[table indexPathForCell:cell];

NSLog(@"been pressed %d si %d",path.section, path.row);

}

Очень ценится.

enter image description here

1 Ответ

1 голос
/ 29 октября 2011

В этом методе, который вы вызываете, просто скажите этим другим контроллерам сегмента установить их значения в «НЕТ».Сложная часть - выяснить, где находятся эти два других элемента управления.Вы должны проделать тяжелую работу по их отслеживанию.

Если ваш дизайн гарантирует, что всегда есть еще две ячейки с сегментированными элементами управления, вы можете просто получить доступ к нужным ячейкам, увеличив значение path.row.

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

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

Редактировать: (чтобы ответить на комментарий) Чтобы изменить настройку, отображаемую в сегментированном элементе управления, просто установите свойство selectedSegmentIndexUISegmentedControl до соответствующего значения.«Да» должно быть 0, а «Нет» должно быть 1.

...