Как передать введенные данные для входа (по электронной почте) в другой ViewController - программно? - PullRequest
0 голосов
/ 10 октября 2019

У меня проблемы с кодом, который я сделал с некоторыми учебниками.

Моя главная проблема в том, что я не могу найти, как передать / выставить введенные данные "email / login" в другом контроллере представления. (на этот раз это называется homeViewController)

Вход в систему или регистрация устанавливаются с помощью Firebase, если это что-то меняет.

@IBAction func LoginTapped(_ sender: Any) {
    // TODO: Validate Text Fields

    // Create cleaned versions of the text field
    let email = emailTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
    let password = passwordTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)

    // Signing in the user
    Auth.auth().signIn(withEmail: email, password: password) { (result, error) in

        if error != nil {
            // Couldn't sign in
            self.errorLabel.text = error!.localizedDescription
            self.errorLabel.alpha = 1
        }
        else {

            let homeViewController = self.storyboard?.instantiateViewController(withIdentifier: Constants.Storyboard.HomeViewController) as? HomeViewController

            self.view.window?.rootViewController = homeViewController
            self.view.window?.makeKeyAndVisible()

        }
    }
}

Любые решения?

1 Ответ

3 голосов
/ 10 октября 2019

Все, что вам нужно сделать, это добавить данные в экземпляр контроллера, который вы создаете.

Сначала убедитесь, что HomeViewController имеет свойство с именем email и password:

class HomeViewController: UIViewController {
    var email: String?
    var password: String?
}

Затем, когда вы создаете экземпляр homeViewController с помощью let homeViewController = self.storyboard?.instantiateViewController(withIdentifier: Constants.Storyboard.HomeViewController) as? HomeViewController, просто задайте свойства в следующих строках:

Auth.auth().signIn(withEmail: email, password: password) { (result, error) in

        if error != nil {
            // Couldn't sign in
            self.errorLabel.text = error!.localizedDescription
            self.errorLabel.alpha = 1
        }
        else {

            var homeViewController = self.storyboard?.instantiateViewController(withIdentifier: Constants.Storyboard.HomeViewController) as? HomeViewController
            homeViewController.email = self.email
            homeViewController.password = self.password

            self.view.window?.rootViewController = homeViewController
            self.view.window?.makeKeyAndVisible()

        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...