Я установил 4 UITextFields и одну UIButton.Это работает как страница регистрации, где пользователь предоставляет такие данные, как имя пользователя, электронная почта, пароль и т. Д. Таким образом, только и только там, где все поля UItextFl не пусты, кнопка регистрации будет включена, чтобы пользователь мог нажать внутри и перейти к следующемуUIView.Все работает нормально, но я замечаю небольшую ошибку, которая проникает в мой последний нерв XD.
Если пользователь заполняет все поля UItextF всей необходимой информацией, но по какой-то причине возвращается в одно из них, пока поле не станетпусто, а затем нажмите на кнопку регистрации. Регистрация будет успешной, даже если там было пустое поле.Пожалуйста, я почти неделю пытался выяснить это.
То, как я настроил UIbotton:
private let registerButton : UIButton = {
let button = UIButton(type: .system)
button.translatesAutoresizingMaskIntoConstraints = false
button.setTitle("Registrar", for: .normal)
button.backgroundColor = UIColor.blue
button.layer.cornerRadius = 5
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 14)
button.setTitleColor(.black, for: .normal)
button.addTarget(self, action: #selector(handleSignUp), for: .touchUpInside)
button.isEnabled = true
return button
}()
Код блока, отвечающий за проверку, если все поля уже используютсязаполнено пользователем.
@objc private func handleSignUp () {
let userName = userNameTexField.text
let email = emailTextField.text
let password = passwordTextField.text
let confirmPassword = confirmPasswordField.text
let birthDate = birthDateTextField.text
if userName?.isEmpty ?? true && email?.isEmpty ?? true && password?.isEmpty ?? true && confirmPassword?.isEmpty ?? true && birthDate?.isEmpty ?? true {
let alert = UIAlertController(title: nil, message: "Youmust fill all the fields with all the required infotmation to signup", preferredStyle: .alert)
let okAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
alert.addAction(okAction)
present(alert, animated: true, completion: nil)
}else {
emailTextField.isUserInteractionEnabled = false
passwordTextField.isUserInteractionEnabled = false
confirmPasswordField.isUserInteractionEnabled = false
birthDateTextField.isUserInteractionEnabled = false
performSegue(withIdentifier: "goToHome", sender: nil)
print("LogIn succesful!")
print (userAge)
}
}
Я ожидаю, чтобы исправить эту ошибку, поэтому, когда пользователь по какой-то причине стирает одно из полей, всплывающее предупреждение снова предлагает пользователю заполнить все заливки, чтобы зарегистрироваться.