Выбор заголовка UITableView - PullRequest
0 голосов
/ 07 мая 2010

Может кто-нибудь объяснить мне, как я могу обнаружить выбор в табличном представлении Заголовок как в tableView: didSelectRowAtIndexPath:?Это было бы очень полезно для меня.Я определил заголовок как UITableCellView, чтобы я мог подключить UISwitch в качестве вспомогательного представления, и он работал отлично, но теперь я не могу обнаружить изменения, сделанные в коммутаторе.Есть предложения?

1 Ответ

1 голос
/ 07 мая 2010

Я предполагаю, что вы динамически создаете переключатели, а не создаете их в IB. Если это так, вам нужно сделать две вещи, чтобы получать и различать изменения в ваших коммутаторах. Во-первых, когда вы создаете переключатель, присвойте его свойству tag какое-то значение, представляющее соответствующий раздел (например, сам индекс раздела). Затем добавьте обработчик событий в коммутатор, который будет вызывать метод в вашем контроллере представления.

Итак, в tableView:viewForHeaderInSection: лениво создайте представление вашего заголовка, возможно, кешируйте его, затем произнесите что-то вроде:

[switch setTag:section];

И таким образом добавьте обработчик событий, где switchToggled: определяется так же, как любой другой IBAction:

[switch addTarget:self 
           action:@selector(switchToggled:)
 forControlEvents:UIControlEventValueChanged];

Затем просто приведите sender, полученный в обработчике событий, к UISwitch * и используйте свойство tag, чтобы указать, какой переключатель был переключен.

...