2016-06-10 80 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即可。