检查多个UISwitch的状态

时间:2013-10-09 22:47:06

标签: ios objective-c cocoa-touch core-data uiswitch

在我的应用中的某个时刻,用户会看到大量的UISwitch。当这个视图离开时,我想检查每个开关的位置,如果它是打开的,要将一个简单的字符串保存到该开关的核心数据中,只是让我知道它已打开。问题是,我不想手动制作一堆if语句,如下所示:

if(switch1 is on){
    save attribute in core data switch1checked as @"YES i am checked"
}

检查具有不同插座名称的不同UISwitch的最佳做法是什么?我在想下面的事情:

for (UIView *view in [self.scrollView subviews]) {
    if ([view isKindOfClass:[UISwitch class]]) {
        UISwitch *switchView = (UISwitch *)view;
        if(switchView.isOn == YES){
            [self saveToCoreData];
        }

    }
}

问题是没有保存到Core Data,问题是如何知道它所在的开关。有任何想法吗?我确信它很简单,但我想不出解决方案。

1 个答案:

答案 0 :(得分:2)

为每台交换机添加tag。不要等待视图关闭,为每个交换机添加targetaction并处理值更改。当值发生变化时,使用tag确定哪个开关已更改并立即保存该数据。

tag可以是交换机标识符数组的索引......