#質問したいこと
サインアップの画面で設定したユーザー名を、ホーム画面のLabelに表示させるようにしたいです。
#コード
swift4
1//サインアップの画面.swift 2import UIKit 3import Firebase 4import FirebaseAuth 5 6class AccountViewController: UIViewController { 7 var acount: FirebaseApp! 8 9 @IBOutlet private weak var nameTextField: UITextField! 10 @IBOutlet private weak var emailTextField: UITextField! 11 @IBOutlet private weak var passwordTextField: UITextField! 12 13 var isFirst = true // 最初の処理かどうか 14 15 16 @IBAction private func didTapSignUpButton() { 17 let email = emailTextField.text ?? "" 18 let password = passwordTextField.text ?? "" 19 let name = nameTextField.text ?? "" 20 21 Auth.auth().createUser(withEmail: email, password: password) { [weak self] result, error in 22 guard let self = self else { return } 23 if let user = result?.user { 24 let req = user.createProfileChangeRequest() 25 req.displayName = name 26 req.commitChanges() { [weak self] error in 27 guard let self = self else { return } 28 if error == nil { 29 user.sendEmailVerification() { [weak self] error in 30 guard let self = self else { return } 31 if error == nil { 32 // 仮登録完了画面へ遷移する処理 33 // サインアップ完了のフラグを保持する 34 UserDefaults.standard.set(true, forKey: "appSignUpStatusKey") 35 UserDefaults.standard.synchronize() 36 } 37 self.showErrorIfNeeded(error) 38 } 39 } 40 self.showErrorIfNeeded(error) 41 } 42 } 43 self.showErrorIfNeeded(error) 44 } 45 if (email == "" || password == "" || name == "") { 46 let message = "全てのフォームに記入して下さい。" 47 let alert = UIAlertController(title: nil, message: message, preferredStyle: .alert) 48 alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) 49 present(alert, animated: true, completion: nil) 50 } 51 } 52 53 private func showErrorIfNeeded(_ errorOrNil: Error?) { 54 // エラーがなければ何もしません 55 guard let error = errorOrNil else { return } 56 57 let message = "エラーが起きました" // ここは後述しますが、とりあえず固定文字列 58 let alert = UIAlertController(title: nil, message: message, preferredStyle: .alert) 59 alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) 60 present(alert, animated: true, completion: nil) 61 } 62 63 64 65 66 override func viewDidLoad() { 67 super.viewDidLoad() 68 69 // Do any additional setup after loading the view. 70 } 71 72} 73
swift4
1//ホーム画面.swift 2import UIKit 3 4class FirstViewController: UIViewController { 5 6 @IBOutlet weak var label: UILabel! 7 @IBOutlet weak var userLabel: UILabel!//このLabelにユーザー名を表示させたい 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 12 label.frame = CGRect(x: 0, y: 30, width: self.view.frame.width, height: 150) 13 label.textAlignment = NSTextAlignment.center 14 15 label.numberOfLines = 2 16 self.view.addSubview(label) 17 18 let now = Date() 19 let formatter = DateFormatter() 20 21 formatter.dateFormat = "yyyy/MM/dd" 22 label.text = formatter.string(from: now) 23 // Do any additional setup after loading the view. 24 25 } 26} 27
#やってみたこと
どうすればいいのかわからないので、是非ご教授願います。
#エラー
エラーは特にありません。
viewcontrollerの関係を追記してください。
presentしているのか,navigationController でpushしているのかで処理は異なります。
回答1件
あなたの回答
tips
プレビュー