Я предполагаю, что вы динамически создаете переключатели, а не создаете их в IB. Если это так, вам нужно сделать две вещи, чтобы получать и различать изменения в ваших коммутаторах. Во-первых, когда вы создаете переключатель, присвойте его свойству tag
какое-то значение, представляющее соответствующий раздел (например, сам индекс раздела). Затем добавьте обработчик событий в коммутатор, который будет вызывать метод в вашем контроллере представления.
Итак, в tableView:viewForHeaderInSection:
лениво создайте представление вашего заголовка, возможно, кешируйте его, затем произнесите что-то вроде:
[switch setTag:section];
И таким образом добавьте обработчик событий, где switchToggled: определяется так же, как любой другой IBAction:
[switch addTarget:self
action:@selector(switchToggled:)
forControlEvents:UIControlEventValueChanged];
Затем просто приведите sender
, полученный в обработчике событий, к UISwitch *
и используйте свойство tag
, чтобы указать, какой переключатель был переключен.