Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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
Swift分段控件默认状态_Swift_Swift2_Uisegmentedcontrol - Fatal编程技术网

Swift分段控件默认状态

Swift分段控件默认状态,swift,swift2,uisegmentedcontrol,Swift,Swift2,Uisegmentedcontrol,我有一个分段控件,如果你点击其中一个分段,它会工作得很好,但是如果你不点击任何东西,让它坐在自然休息点,这是第一个分段,它就不工作了 我通过点击另一段并继续应用程序来测试这一点,它成功了,我也通过点击另一段并返回到第一段进行了测试,它成功了 @IBAction func segmentedControl(sender: UISegmentedControl) { switch segmenControl.selectedSegmentIndex { case 0:

我有一个分段控件,如果你点击其中一个分段,它会工作得很好,但是如果你不点击任何东西,让它坐在自然休息点,这是第一个分段,它就不工作了

我通过点击另一段并继续应用程序来测试这一点,它成功了,我也通过点击另一段并返回到第一段进行了测试,它成功了

@IBAction func segmentedControl(sender: UISegmentedControl) {

    switch segmenControl.selectedSegmentIndex {

    case 0:
        numberOfParticipants = "4"
    case 1:
        numberOfParticipants = "6"
    case 2:
        numberOfParticipants = "8"
    case 3:
        numberOfParticipants = "10"
    case 4:
        numberOfParticipants = "12"
    case 5:
        numberOfParticipants = "14"
    case 6:
        numberOfParticipants = "16"
    default:
        break
    }


}
这是有意义的,因为它被包装在一个iAction中,没有任何东西被按下,因此它不会被触发。如何解决此问题

编辑

我的意思是,如果高亮显示的段显示为4,用户点击“继续”按钮,则会用字符串4更新变量,然后firebase会更新为x=4


因此,当您在默认情况下降落到页面上时,4段会突出显示,如果您希望4成为您的选项,您可以将其放在一边,然后单击“继续”按钮……我的问题是,如果您不与段控件交互并实际点击4,则代码永远不会运行,但是,如果你点击6,然后返回到4,它将触发你的问题,而不是很清楚地定义到底是什么似乎被打破了。如果你不点击它,有什么不起作用?通常,使用UISegmentedControls需要两个步骤。在步骤1中,您可以通过以下方式在初始化(即viewDidLoad)中进行设置:

segmenControl.selectedSegmentIndex =  your_initial_value
当然,初始值不能是numberOfParticipants,因为控件只有6个值


第二步是类似于IBAction的,看起来不错。你对神奇数字的使用当然有点问题。

你的问题在定义似乎被破坏的东西时不是很清楚。如果你不点击它,有什么不起作用?通常,使用UISegmentedControls需要两个步骤。在步骤1中,您可以通过以下方式在初始化(即viewDidLoad)中进行设置:

segmenControl.selectedSegmentIndex =  your_initial_value
当然,初始值不能是numberOfParticipants,因为控件只有6个值


第二步是类似于IBAction的,看起来不错。你使用幻数当然有点问题。

我就是这样理解这个问题的: 您有一个“继续”按钮,如果您点击它,您希望它反映分段控件的状态。对吗


如果是这种情况,您不需要iAction,只需在“继续”按钮的iAction中直接读取segmentControl.selectedSegmentIndex即可。

我就是这样理解这个问题的: 您有一个“继续”按钮,如果您点击它,您希望它反映分段控件的状态。对吗


如果是这种情况,您不需要iAction,只需在“继续”按钮的iAction中直接读取segmentControl.selectedSegmentIndex即可。

我理解您的问题,我自己也有同样的问题。 我进行了试验,因为我根本不想突出显示或选择分段控件中的任何分段,因为这会给用户造成混乱,如果突出显示的开始索引实际上是用户所需的,则按下时不会在开关盒区域内执行操作。 所以我将索引值设为-1,这根本不会突出显示段的任何部分,它可以满足我的要求,并让用户选择所需的段

我在ViewDidLoad中设置了这个

mySegmentedControlOutlet.selectedSegmentIndex = -1

我理解你的问题,我自己也有同样的问题。 我进行了试验,因为我根本不想突出显示或选择分段控件中的任何分段,因为这会给用户造成混乱,如果突出显示的开始索引实际上是用户所需的,则按下时不会在开关盒区域内执行操作。 所以我将索引值设为-1,这根本不会突出显示段的任何部分,它可以满足我的要求,并让用户选择所需的段

我在ViewDidLoad中设置了这个

mySegmentedControlOutlet.selectedSegmentIndex = -1

什么问题?正如你自己所说,如果用户不点击任何东西,什么也不会发生。有什么问题吗?我不是在偷笑;我真的不明白。如果你不轻触任何东西,让它坐在自然休息点,这是它不起作用的第一部分,这句话对我的思想没有任何意义;这意味着什么?我已经更新了我的问题…基本上取决于当你点击“继续”按钮时突出显示的片段代码被发送到firebase…因为没有对片段进行交互,如果你希望默认值为4,代码就不会运行…我希望像你需要的那样清除它上传是定义一个默认值如果未按tab键,则为参与者人数的值什么问题?正如你自己所说,如果用户不点击任何东西,什么也不会发生。有什么问题吗?我不是在偷笑;我真的不明白。如果你不轻触任何东西,让它坐在自然休息点,这是它不起作用的第一部分,这句话对我的思想没有任何意义;工作在这里意味着什么?我已经更新了我的问题…基本
根据您点击“继续”按钮时突出显示的段,代码将发送到firebase…因为没有对段进行交互,如果您希望默认值为4,则代码不会运行…我希望清除它,就像您需要的一样,在没有选项卡的情况下,上传是为numberOfParticipants定义默认值按一下你说神奇数字是什么意思?我更新了我的问题耶-我看到了,我很困惑:]你在最初的问题中没有提到任何“继续”按钮、firebase或任何这些。在任何情况下,看起来您都依赖分段控件来初始化内容。但情况应该是相反的。您应该有一个默认值来初始化分段控件,该值还应该控制代码中当前不工作的其他部分。顺便说一句:幻数是指在代码中直接使用一个数字。不知道初始化会引起这样的头痛。谢谢你说神奇数字是什么意思?我更新了我的问题耶-我看到了,我很困惑:]你在最初的问题中没有提到任何“继续”按钮、firebase或任何这些。在任何情况下,看起来您都依赖分段控件来初始化内容。但情况应该是相反的。您应该有一个默认值来初始化分段控件,该值还应该控制代码中当前不工作的其他部分。顺便说一句:幻数是指在代码中直接使用一个数字。不知道初始化会引起这样的头痛。谢谢