Ios 链接两个(或多个)UISegmented控件

Ios 链接两个(或多个)UISegmented控件,ios,swift,uisegmentedcontrol,Ios,Swift,Uisegmentedcontrol,我试图从第一个分段控件获取答案,然后自动选择第二个(以及更多)分段控件的答案,如果选择的答案是否 因此问题1分段控制(是、否、N/A),如果选择了否,则回答问题2(以及Q3、Q4等)分段控制N/A。 我可以让它单独处理Question1,即按No但在Question1上更改为N/A,但我希望它将Question1保留为No,然后将Question2等更改为N/A 我尝试将发件人更改为问题2,但不起作用 @IBOutlet weak var Queston2: UISegmente

我试图从第一个分段控件获取答案,然后自动选择第二个(以及更多)分段控件的答案,如果选择的答案是

因此
问题1
分段控制(是、否、N/A),如果选择了
,则回答
问题2
(以及Q3、Q4等)分段控制
N/A
。 我可以让它单独处理
Question1
,即按
No
但在
Question1
上更改为
N/A
,但我希望它将
Question1
保留为
No
,然后将
Question2
等更改为
N/A

我尝试将
发件人
更改为
问题2
,但不起作用

        @IBOutlet weak var Queston2: UISegmentedControl! //Will need to add same for Q3 etc

        @IBAction func Question1(_ sender: UISegmentedControl) {

            if sender.selectedSegmentIndex == 0 {
            //Do stuff
            }

            else if sender.selectedSegmentIndex == 1 {

                sender.selectedSegmentIndex = 2                  // Change button to 'N/A', works for this question, but i want it to change Question2, not Question1.

         @IBAction func Question2(_ sender: UISegmentedControl) { // generally repeats as Question1 above.

我找到了一些类似的答案,但它们似乎比我认为需要的复杂得多。

这基本上就是你可以做的:

class ArrayOfSegsViewController: UIViewController {

    @IBOutlet var q1SegControl: UISegmentedControl!
    @IBOutlet var q2SegControl: UISegmentedControl!
    @IBOutlet var q3SegControl: UISegmentedControl!
    @IBOutlet var q4SegControl: UISegmentedControl!
    @IBOutlet var q5SegControl: UISegmentedControl!


    @IBAction func q1SegControlChangeed(_ sender: UISegmentedControl) {

        if sender.selectedSegmentIndex == 0 {
            // do stuff
        } else if sender.selectedSegmentIndex == 1 {
            // set all others to "N/A"
            [q2SegControl, q3SegControl, q4SegControl, q5SegControl].forEach {
                $0.selectedSegmentIndex = 2
            }
        } else {
            // do stuff
        }

    }

}
==1
块中,创建一个其他分段控件的数组,并循环,表示“对于每个控件,将选定的分段索引设置为2。”

旁注:使用

lowerCaseFirstChar
用于变量和函数名。使用

UpperCaseFirstChar 

对于类/结构/枚举/等

So-您有n个
UISegmentedControl
对象,所有对象都带有“是-否-n/A”,当对其中任何一个对象选择“否”时,所有其他对象都应设置为“n/A”?但如果选择了“是”或“不适用”,请执行其他操作?@ColinD-您是否在情节提要中列出了这些内容?还是通过代码创建它们?不管是哪种方式,有了这么多,你最好把它们放在一个数组中。然后,您可以使用
ArrayOfControl。forEach
我已经在Storeyboard中列出了这一点,现在可以了。@ColinD-如果这回答了您的问题,请确保将答案标记为已接受,以方便其他任何人。谢谢,现在完成,我不知道这是我的第一个问题。谢谢