あるアプリを作成する際に、新規登録、ログイン画面の作成に取り掛かっています。
前提として、ログイン時のviewと、した後のメインのviewの2つがあります。
ログインしたらメインのviewに切り替わる形です。
メインのviewのID名がRootTabBarController
新規登録viewのクラス名がsignUpViewControllerです。
今発生している問題が、ログイン時のviewで新規会員登録ボタンを押し、新規登録のviewで"ユーザー名"、"メールアドレス"、"パスワード"、"パスワード(確認)"をそれぞれ入力した後に新規登録ボタンを押すと、メインのviewに切り替えたいのですが、errorがprintされてしまいます。
何度もコードを見直したのですが、解決策が見当たらない状態です。
何か方法があれば教えていただきたいです。
swift
1import UIKit! 2import NCMB 3class signUpViewController: UIViewController,UITextFieldDelegate { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 8 9 userIdTextField.delegate = self 10 emailTextField.delegate = self 11 passwordTextField.delegate = self 12 confirmTextField.delegate = self 13 14 // Do any additional setup after loading the view. 15 } 16 17 18 @IBOutlet weak var userIdTextField:UITextField! 19 @IBOutlet weak var emailTextField:UITextField! 20 @IBOutlet weak var passwordTextField:UITextField! 21 @IBOutlet weak var confirmTextField:UITextField! 22 23 func textFieldShouldReturn(_ textField: UITextField) -> Bool { 24 textField.resignFirstResponder() 25 return true 26 } 27 @IBAction func signUp(){ 28 let user = NCMBUser() 29 user.userName = userIdTextField.text! 30 user.mailAddress = emailTextField.text! 31 if passwordTextField.text == confirmTextField.text { 32 user.password = passwordTextField.text! 33 } else { 34 print("不一致です") 35 } 36 37 user.signUpInBackground { (error) in 38 if error != nil { 39 //エラーがあった場合 40 print("error") 41 } else { 42 //成功 43 let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main) 44 let rootViewController = storyboard.instantiateViewController(withIdentifier: "RootTabBarController") 45 UIApplication.shared.keyWindow?.rootViewController = rootViewController 46 } 47 } 48 } 49 50}
swift
1 2import UIKit 3import CoreData 4import NCMB 5@UIApplicationMain 6class AppDelegate: UIResponder, UIApplicationDelegate { 7 8 var window: UIWindow? 9 10 11 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 12 13 NCMB.setApplicationKey("2967bbec9e70b8d691b06dca02f21fe1b1e84f807c245a660e06c85839cfa2ea", clientKey: "1257f541876271709d05b9054223c70f542a17d48ae4d9af78802bf51e2b4b74") 14 15 let ud = UserDefaults.standard 16 let isLogin = ud.bool(forKey: "isLogin") 17 18 if isLogin == true { 19 //ログイン中だったら 20 self.window = UIWindow(frame: UIScreen.main.bounds) 21 let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main) 22 let rootViewController = storyboard.instantiateViewController(withIdentifier: "RootTabBarController") 23 self.window?.rootViewController = rootViewController 24 self.window?.backgroundColor = UIColor.white 25 self.window?.makeKeyAndVisible() 26 } else { 27 //ログインしていなっかたら 28 self.window = UIWindow(frame: UIScreen.main.bounds) 29 let storyboard = UIStoryboard(name: "signIn", bundle: Bundle.main) 30 let rootViewController = storyboard.instantiateViewController(withIdentifier: "RootNavigationController") 31 self.window?.rootViewController = rootViewController 32 self.window?.backgroundColor = UIColor.white 33 self.window?.makeKeyAndVisible() 34 35 } 36 37 38 return true 39 }
どんなエラー文が出ているのか追記をお願いします。
その際、省略せずに、全部載せていただけるとアドバイスできるかもしれません。
拙い説明ですみません。 user.signUpInBackground { (error) in
if error != nil {
//エラーがあった場合
print("error")
} else {
//成功
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let rootViewController = storyboard.instantiateViewController(withIdentifier: "RootTabBarController")
UIApplication.shared.keyWindow?.rootViewController = rootViewController
の箇所のところで、errorがprintされてしまう状況です。
回答1件
あなたの回答
tips
プレビュー