2016-04-15 5 views
0

Итак, у меня есть регистрационная форма в моем приложении, но проблема. Вот мой код:Зарегистрировать форму в приложении

@IBAction func registerButtonAction(sender: AnyObject) { 
     if (fullnameTextField.text == ""){ 
      self.fullnameTextField.shake() 
     } 
     if (usernameTextfield.text == ""){ 
      self.usernameTextfield.shake() 
     } 
     if (usernameTextfield.text?.characters.count < 6){ 
      usernameTextfield.shake() 
     } 
     if (emailTextfield.text == ""){ 
      self.emailTextfield.shake() 
     } 
     if (passwordTextfield.text == ""){ 
      self.passwordTextfield.shake() 
     } 
     if (retypepasswordTextfield.text == ""){ 
      self.retypepasswordTextfield.shake() 
     } 
     else{ 
      registerButton.setTitle("Registering user...", forState: UIControlState.Normal) 
      registerButton.alpha = 0.20 
      registerButton.enabled = false 
      registerUser() 
     } 
    } 

Во-первых: могу ли я сделать этот код меньше, проще? И, во-вторых, я хочу, чтобы пользователь только начинал registerUser(), если все UITextField имеет текст, а usernameTextField и passwordTextField имеет число символов свыше 6. Также как исправить то, что passwordTextField и retypepasswordTextfield имеет тот же текст перед регистрацией? Какие-либо предложения?

ответ

1

Это немного лучше, на мой взгляд:

@IBAction func registerButtonAction(sender: AnyObject) { 
    let validInput = true 
    let allTextFields = [fullnameTextField, usernameTextfield, emailTextfield, passwordTextfield, retypepasswordTextfield] 
    for textField in allTextFields { 
     if textField.text == "" { 
      validInput = false 
      textField.shake() 
     } 
    } 

    let theTextFieldsWithMin6Characters = [usernameTextfield, passwordTextfield] 
    for textField in theTextFieldsWithMin6Characters { 
     if textField.text?.characters.count < 6 { 
      validInput = false 
      textField.shake() 
     } 
    } 
    if passwordTextfield.text != retypepasswordTextfield.text { 
     validInput = false 
     retypepasswordTextfield.shake() 
    } 

    if validInput { 
     registerButton.setTitle("Registering user...", forState: UIControlState.Normal) 
     registerButton.alpha = 0.20 
     registerButton.enabled = false 
     registerUser() 
    } 
} 
+0

Параметр '' retypepasswordTextfield дрожит теперь все время, даже если текст такой же, как пароль и более 6 символов .. –

+0

Добавить контрольные точки и попытаться выяснить, почему это трясет. – dasdom

+0

Похоже, Эрик Ауранауна исправил это! Спасибо вам, ребята :) –