UITableView标题选择

时间:2010-05-07 01:56:13

标签: iphone objective-c uitableview uiswitch

任何人都可以解释我如何在表视图中检测选择,如tableView中的Header视图:didSelectRowAtIndexPath :?这对我来说非常有用。我已经将标题定义为UITableCellView,因此我可以将UISwitch作为附件视图附加,并且它工作得很好,但现在我无法检测到交换机中所做的更改。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我假设您正在动态创建交换机,而不是在IB中创建交换机。如果是这种情况,您需要做两件事来接收并区分对交换机的更改。首先,在创建开关时,将其tag属性设置为表示相应部分的某个值(可能是部分索引本身)。然后,向交换机添加一个事件处理程序,它将回调到视图控制器上的方法。

所以,在tableView:viewForHeaderInSection:中,懒洋洋地实例化你的标题视图,可能会缓存它,然后说出类似的内容:

[switch setTag:section];

然后添加事件处理程序,其中switchToggled:的定义与任何其他IBAction一样:

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

然后,只需将您在事件处理程序中收到的sender转换为UISwitch *,然后使用tag属性来判断切换了哪个切换。