Nano Hash - криптовалюты, майнинг, программирование

При нажатии кнопки регистрации выполняется переход, даже если все текстовые поля пусты.

Я хотел сохранить все данные из текстовых полей в firebase, но после нажатия кнопки регистрации он продолжается, даже если все 3 текстовых поля пусты

импортировать UIKit импортировать Firebase

класс SignUpViewController: UIViewController {

Вот все выходы из раскадровки

@IBOutlet weak var userNameTextField: UITextField!
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var signUpButton: UIButton!
@IBOutlet weak var errorLabel: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    userNameTextField.backgroundColor = .clear
    userNameTextField.layer.cornerRadius = 27
    userNameTextField.layer.borderWidth = 1
    userNameTextField.layer.borderColor = UIColor.systemGreen.cgColor
    
    emailTextField.backgroundColor = .clear
    emailTextField.layer.cornerRadius = 27
    emailTextField.layer.borderWidth = 1
    emailTextField.layer.borderColor = UIColor.systemGreen.cgColor
    
    passwordTextField.backgroundColor = .clear
    passwordTextField.layer.cornerRadius = 27
    passwordTextField.layer.borderWidth = 1
    passwordTextField.layer.borderColor = UIColor.systemGreen.cgColor
}

@IBAction func signUpPressed(_ sender: UIButton) {
   
    if let email = emailTextField.text, let password = passwordTextField.text {
        Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
            if let e = error {
                self.errorLabel.text = e.localizedDescription
            } else {

/* Здесь необходимо выполнить переход только после того, как все 3 текстовых поля заполнены данными и нет ошибок */

                self.performSegue(withIdentifier: "SignUpToMap", sender: self)
                //Navigate to the ChatViewController
                let db = Firestore.firestore()
                
                db.collection("users").addDocument(data: ["username": self.userNameTextField.text!, "uid": authResult!.user.uid]) { (error) in
                    if let e = error {
                        self.errorLabel.text = e.localizedDescription
                    }
                }
                
            }
        }
    }
}


/*
// MARK: - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    // Get the new view controller using segue.destination.
    // Pass the selected object to the new view controller.
}
*/

}

31.08.2020

Ответы:


1

У меня была та же проблема: если вы перетащили переход с кнопки регистрации непосредственно на другой контроллер представления (удерживая элемент управления и перетаскивая), он выполнит переход, даже если он не соответствует требованиям после нажатия кнопки. Если это так, то удалите переход и создайте новый, перетащите переход со значка контроллера представления на другой контроллер представления, используя тот же идентификатор.

31.08.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..