2016-06-10 79 views
0

我有一个分段控件,如果你点击其中一个段,可以使用,但是如果你不点击任何东西,并让它坐在自然休息点,那它是不起作用的第一个段Swift分段控件默认状态

我通过敲击另一段,并继续应用程序测试这和它的工作,我也通过敲击另一个段,然后再回到第一段测试,它的工作

@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 
    } 


} 

这是有道理的,因为它是包裹在一个IBAction中,没有任何东西被压缩,因此它没有被触发。我如何解决这个问题?

编辑

通过不工作我的意思是,如果是高亮的部分说4和用户点击继续按钮(不同的按钮),然后一个变量被“4”的字符串和更新然后firebase得到更新说x = 4

所以发生了什么是当你在网页上默认情况下,4段突出显示,如果你想4是你的选择,你会离开它独自一人,点击继续按钮...我的问题是,如果你没有与段控件进行交互,并实际点击4,那么代码永远不会运行,但如果你点击6然后回到4,它会触发

+0

什么问题?正如你自己所说的,如果用户不点击任何东西,什么都不会发生。有什么问题? (我并不是很小心,我真的不明白,“如果你没有挖掘任何东西,让它坐在自然的休息点,这是它不起作用的第一部分”,我的意思是什么都没有告诉;什么将“工作”_mean_在这里?) – matt

+0

我已经更新了我的问题......基本上取决于当你点击继续按钮代码发送到firebase时突出显示哪个段...因为如果你想要的话没有交互作用默认值为4代码无法运行...我希望清除它 – RubberDucky4444

+1

看起来你需要的是在没有按下任何标签的情况下为numberOfParticipants定义一个默认值 –

回答

2

您的问题在确定似乎被破坏的问题时不太清楚。如果你不点击它什么不起作用?一般来说,使用UISegmentedControls涉及2个步骤。在步骤1中,您将其设置在初始化 - 即viewDidLoad中 - 通过:

segmenControl.selectedSegmentIndex = your_initial_value 

当然你的初始值不能numberOfParticipants因为控制只有6个值..

然后第二步是像你IBAction看起来不错。你使用魔法数字当然有点问题。

+0

你说什么时你说什么神奇数字?我已更新我的问题 – RubberDucky4444

+0

是的 - 我看到并且感到困惑:]您没有提及任何继续按钮,火力点或任何在您的原始问题。无论如何,它看起来像你依靠你的分段控制来初始化事物。但它应该是相反的。你应该有一个默认的初始化你的分段控制,这个值也应该控制你目前不工作的代码的其他部分。顺便说一句:幻数是指直接使用代码中的数字。 – caxix

1

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

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