2017-07-28 71 views
0

我有兩個單選按鈕,每個按鈕都有自己的IBAction。第一個完美無瑕。第二種情況具有if-else情況,並且不響應第一次敲擊,但隨後響應每個敲擊。從查看類似的問題,我有一種感覺,第一次點擊就是在執行操作之前評估我的功能,但我無法找到讓按鈕在第一次點擊時響應的方法。必須按兩次Swift 3按鈕動作

@IBAction func radioSchedule(_ sender: Any) { 
     print(timePicker.isHidden) 

     if timePicker.isHidden == true { 

      timePicker.isHidden = false 
      hideButton.isHidden = true 
      timeView.isHidden = false 
      itemTypeField.text = "Schedule" 
      saveButton.isHidden = false 

     } else { 
      timePicker.isHidden = true 
      timeView.isHidden = true 
     } 
     } 
+3

你看到的第一次敲擊從'打印(timePicker.isHidden)'調試控制檯的任何輸出? – DonMag

+0

是的,我是。拾取器被隱藏,但控制檯說錯誤...然後當拾取器出現時在第二次敲擊時爲真。 –

+0

@JWHall ^所以,這很有趣。我們來評估一下。它看起來像按鈕工作正常......你在哪裏/最初如何將'timePicker'設置爲隱藏? –

回答

0

我的猜測是你的timePicker坐在你的timeViewtimeView內最初是隱藏的,但你的timePicker不,那是什麼導致你的問題。

如果是的話,你很可能只是通過你的判斷斷if/elsetimeView的解決這個問題,然後你甚至不必擔心timePicker設置爲隱藏。

即:

@IBAction func radioSchedule(_ sender: Any) { 

     print(timeView.isHidden) 

     if timeView.isHidden { 

      hideButton.isHidden = true 
      timeView.isHidden = false 
      itemTypeField.text = "Schedule" 
      saveButton.isHidden = false 

     } else { 
      timeView.isHidden = true 
     } 
    } 
+0

感謝William!這固定了它。是我的邏輯問題,我試圖做兩件事情與其他塊一樣,我試圖做一件事在另一個或其他完全? –

+0

不會。你的問題是你試圖判斷'timePicker'是否隱藏,但是'timePicker'從來不會被隱藏起來......只有它所在的視圖被隱藏 - 'timeView' –

0

貌似設置timepicker.ishidden創造問題修改您的代碼是這樣的: -

@IBAction func radioSchedule(_ sender: Any) { 
    print(timePicker.isHidden) 
    //Here updating the isHidden property first. If its false then initially will set to true. 
    timePicker.isHidden = !timePicker.isHidden 
    if timePicker.isHidden == true { 
    hideButton.isHidden = true 
    timeView.isHidden = false 
    itemTypeField.text = "Schedule" 
    saveButton.isHidden = false 
    } else { 
     timeView.isHidden = true 
     } 
    } 
+0

這裏的timePicker彈出來。但其他條件永遠不會啓動,所以我不能在第二次按下時隱藏它。 –

+0

這只是一個熱修復。你需要探索爲什麼'timepicker.isHidden'第一次打印錯誤,當你似乎相信它已經被隱藏了 –

+0

所以我更新了else塊 –