访问Prototype Cell中的UISwitch

时间:2014-04-24 09:42:35

标签: ios objective-c uitableview uiswitch

我正在尝试在用户更改UISwitch的状态时打开/关闭。

enter image description here

例如

- (IBAction)toggleSwitch:(id)sender {

    ChannelsTableViewCell* cell = (ChannelsTableViewCell *)[sender superview].superview;
    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];

    if (cell.localSwitch.on)
    {
        NSLog(@"On");
    }

}

当我运行它时会抛出错误。

2014-04-24 11:33:41.462 HRApp [3258:60b] - [UITableViewCellScrollView localTitle]:无法识别的选择器发送到实例0x19354410 2014-04-24 11:33:41.467 HRApp [3258:60b] ***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [UITableViewCellScrollView localTitle]:无法识别的选择器发送到实例0x19354410'

1 个答案:

答案 0 :(得分:3)

如果您将IBAction连接到交换机,则无需让UITableViewCell检查交换机的值。您可以使用IBAction中的sender参数。因此:

- (IBAction)toggleSwitch:(id)sender {
    UISwitch *switch = (UISwitch *)sender;
    if (switch.on)
    {
        NSLog(@"On");
    }

}

如果您需要找到显示indexPath的{​​{1}},可以添加以下内容:

UISwitch