任何人都可以解释我如何在表视图中检测选择,如tableView中的Header视图:didSelectRowAtIndexPath :?这对我来说非常有用。我已经将标题定义为UITableCellView,因此我可以将UISwitch作为附件视图附加,并且它工作得很好,但现在我无法检测到交换机中所做的更改。有什么建议吗?
答案 0 :(得分:1)
我假设您正在动态创建交换机,而不是在IB中创建交换机。如果是这种情况,您需要做两件事来接收并区分对交换机的更改。首先,在创建开关时,将其tag
属性设置为表示相应部分的某个值(可能是部分索引本身)。然后,向交换机添加一个事件处理程序,它将回调到视图控制器上的方法。
所以,在tableView:viewForHeaderInSection:
中,懒洋洋地实例化你的标题视图,可能会缓存它,然后说出类似的内容:
[switch setTag:section];
然后添加事件处理程序,其中switchToggled:的定义与任何其他IBAction一样:
[switch addTarget:self
action:@selector(switchToggled:)
forControlEvents:UIControlEventValueChanged];
然后,只需将您在事件处理程序中收到的sender
转换为UISwitch *
,然后使用tag
属性来判断切换了哪个切换。