前提・実現したいこと
**「登録」画面→「メアドを確認してください」画面→「HomeViewController」**画面になるような動きを作りたいです。
またどのようにsegueを繋げばいいのかわかりません。
該当のソースコード
Swift
1import UIKit 2import Firebase 3 4 5 6class AccountViewController: UIViewController { 7 8 9 @IBOutlet var emailTextField: UITextField! 10 @IBOutlet var passwordTextField: UITextField! 11 @IBOutlet var usernameTextField: UITextField! 12 13 var auth: Auth! 14 15 16 17 override func viewDidLoad() { 18 super.viewDidLoad() 19 auth = Auth.auth() 20 emailTextField.delegate = self 21 passwordTextField.delegate = self 22 usernameTextField.delegate = self 23 24 } 25 26 27 override func viewDidAppear(_ animated: Bool) { 28 super.viewDidAppear(animated) 29 if auth.currentUser != nil { 30 auth.currentUser?.reload(completion: { error in 31 if error == nil { 32 if self.auth.currentUser?.isEmailVerified == true { 33 self.performSegue(withIdentifier: "Home", sender: self.auth.currentUser!) 34 } else if self.auth.currentUser?.isEmailVerified == false { 35 let alert = UIAlertController(title: "確認用メールを送信しているので確認をお願いします。", message: "まだメール認証が完了していません。", preferredStyle: .alert) 36 alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) 37 self.present(alert, animated: true, completion: nil) 38 } 39 } 40 }) 41 } 42 } 43 44 45 46 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 47 if segue.identifier == "Home" { 48 segue.destination.modalPresentationStyle = .fullScreen 49 let nextViewController = segue.destination as! HomeViewController 50 let user = sender as! User 51 nextViewController.me = AppUser(data: ["userID" : user.uid]) 52 } 53 } 54 55 56 57 58 @IBAction func registerAccount(_ sender: Any) { 59 let email = emailTextField.text! 60 let password = passwordTextField.text! 61 let username = usernameTextField.text! 62 auth.createUser(withEmail: email, password: password) { (result, error) in 63 if error == nil, let result = result { 64 result.user.sendEmailVerification(completion: { (error) in 65 if error == nil { 66 let alert = UIAlertController(title: "仮登録を行いました。", message: "入力したメールアドレス宛に確認メールを送信しました。", preferredStyle: .alert) 67 alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) 68 self.present(alert, animated: true, completion: nil) 69 } 70 }) 71 } 72 } 73 } 74 75} 76 77extension AccountViewController: UITextFieldDelegate { 78 func textFieldShouldReturn(_ textField: UITextField) -> Bool { 79 textField.resignFirstResponder() 80 return true 81 } 82} 83 84
補足情報(FW/ツールのバージョンなど)
今こんな感じになります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。