Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图从组中打开一个UISwitch,并在iOS中同时禁用其他UISwitch_Ios_Uiswitch - Fatal编程技术网

试图从组中打开一个UISwitch,并在iOS中同时禁用其他UISwitch

试图从组中打开一个UISwitch,并在iOS中同时禁用其他UISwitch,ios,uiswitch,Ios,Uiswitch,我正在开发一个应用程序,其中我有一个UISwitch(开关1),用于控制其他UISwitch(开关2-5)。如果开关1接通,则开关2-5断开并禁用。如果开关1关闭,则开关2-5应关闭但已启用,允许用户打开或关闭其中一个其他开关 现在,如果2-5的开关打开,那么2-5的所有其他开关都应该关闭并禁用。只有当从2-5接通的开关再次断开时,2-5的所有开关才会启用。换句话说,只有当开关2-5全部关闭时,开关2-5才全部启用;当其中一个打开时,开关2-5全部禁用。我正试图用我的代码来实现这一点,但到目前为

我正在开发一个应用程序,其中我有一个UISwitch(开关1),用于控制其他UISwitch(开关2-5)。如果开关1接通,则开关2-5断开并禁用。如果开关1关闭,则开关2-5应关闭但已启用,允许用户打开或关闭其中一个其他开关

现在,如果2-5的开关打开,那么2-5的所有其他开关都应该关闭并禁用。只有当从2-5接通的开关再次断开时,2-5的所有开关才会启用。换句话说,只有当开关2-5全部关闭时,开关2-5才全部启用;当其中一个打开时,开关2-5全部禁用。我正试图用我的代码来实现这一点,但到目前为止还没有成功。以下是我所拥有的:

- (IBAction)MainSwitchAction:(id)sender {

    if (self.mySwitch.on) {

        [self disableCheckBoxes:YES];

    }  else if (!self.mySwitch.on){

        [self disableCheckBoxes:NO];
    }

}  
当主开关接通/断开时,调用上述方法。我的另一个方法是:

-(void) disableCheckBoxes:(BOOL)switchOff {

    if (switchOff==YES) {

        for (int i = 1; 2 < 6; i++) {

            UISwitch *sw = (UISwitch *)[self.view viewWithTag:i];
            sw.on = NO;
            sw.enabled = NO;

        }


    }  else if (switchOff==NO){

        for (int i = 2; i < 6; i++) {

            UISwitch *sw = (UISwitch *)[self.view viewWithTag:i];
            sw.on = NO;
            sw.enabled = YES;

        }

    }

}
-(无效)禁用复选框:(BOOL)关闭{
如果(关闭==是){
对于(int i=1;2<6;i++){
UISwitch*sw=(UISwitch*)[带标记的self.view视图:i];
sw.on=否;
sw.enabled=否;
}
}否则如果(关闭==否){
对于(int i=2;i<6;i++){
UISwitch*sw=(UISwitch*)[带标记的self.view视图:i];
sw.on=否;
sw.enabled=是;
}
}
}
我的问题如下:

启动时,我的开关1的默认值为ON,这意味着所有其他开关都应关闭并禁用。但是,由于某些原因,开关2已启用。当我关闭开关1时,开关3-5启用。最后,当我将一个开关从2-5打开时,其余的开关被禁用(正确),但是,当我将打开的开关转到关闭时,2-5的开关没有一个被启用。为什么?


有人知道我做错了什么吗?

在故事板中向UISwitch添加标签,然后在将UISwitch包括到上述集合中后,可以执行以下操作:

- (IBAction)switchCollectionTapped:(UISwitch *)sender {

    [self.switchCollection enumerateObjectsUsingBlock:^(UISwitch *obj, NSUInteger idx, BOOL * _Nonnull stop) {

        if (sender.tag != obj.tag) {
            [obj setOn:NO];
        }
    }];
}

(inti=1;2<6;i++)的循环
中的条件看起来不太好…我正要这么说。2<6将循环将开关置于IBCollection中,并对每个
循环使用一个
。在一个示例中,您能告诉我如何将开关置于IBCollection中吗?当您在脚本中按住Ctrl键并拖动到
.m
文件时,只需从允许您命名的弹出窗口中选择
Outlet Collection
。将所有开关挂在同一插座集合中。