2016-09-06 30 views
2

使用我的代碼時,由於文本字段爲空,顯示viewcontroller時隱藏按鈕。然而,按鈕應顯示文本字段不再爲空時。按鈕沒有顯示我的代碼 - 我做錯了什麼?當文本字段等於零並顯示不爲零時隱藏按鈕

let allInputValues = nameInput.text! + middleInput.text! + surnameInput.text! 

     if allInputValues == "" { 
      nextButton.hidden = true 
      finishButton.hidden = true 
     } else { 
      nextButton.hidden = false 
      finishButton.hidden = false 
     } 

希望你能幫助我

+0

哪裏是你的代碼發佈? – rmaddy

+0

上述代碼何時執行?上下文的代碼不夠用。 – Firo

回答

3

將您的視圖控制器設置爲textField委託。然後使用textFieldDidEndEditing()爲每個textField運行您的支票,並保持隱藏按鈕或顯示按鈕。

class MyViewController: UIViewController, UITextFieldDelegate { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     nextButton.hidden = true 
     finishButton.hidden = true 

     nameInput.delegate = self 
     middleInput.delegate = self 
     surnameInput.delegate = self 
    } 

    func textFieldDidEndEditing(textField: UITextField) { 
     let allInputValues = nameInput.text! + middleInput.text! + surnameInput.text! 

     if allInputValues == "" { 
      nextButton.hidden = true 
      finishButton.hidden = true 
     } else { 
      nextButton.hidden = false 
      finishButton.hidden = false 
     } 
    } 
} 

斯威夫特3

class MyViewController: UIViewController, UITextFieldDelegate { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     nextButton.isHidden = true 
     finishButton.isHidden = true 

     nameInput.delegate = self 
     middleInput.delegate = self 
     surnameInput.delegate = self 
    } 

    func textFieldDidEndEditing(textField: UITextField) { 
     let allInputValues = nameInput.text! + middleInput.text! + surnameInput.text! 

     if allInputValues == "" { 
      nextButton.isHidden = true 
      finishButton.isHidden = true 
     } else { 
      nextButton.isHidden = false 
      finishButton.isHidden = false 
     } 
    } 
} 
+0

添加了所有代碼,包括UITextFieldDelegate,viewDidLoad中的委託和viewDidLoad之後的函數,但沒有任何運氣。當文本框爲空時,按鈕仍然可見。 –

+0

@ D.Finna嘗試我的編輯,以隱藏按鈕開始 – Shades

+1

當然! D:D –

0

你只運行了「如果」一次,在程序的開始。將其放置到每次值更改時都會運行的循環中。