別のストーリーボード へ遷移したいですThread 1: signal SIGABRTエラー
- 評価
- クリップ 0
- VIEW 965

退会済みユーザー
swift4
xcode9.2
firebase
メールアドレスベースのログインを実装している途中です。
画像のMainStoryboard(左側)の"スタート画面"から
遷移してサインアップとログインはできている様なのですが、
その後MainStoryboard2(右側)の"ログインしたよ"に遷移できません。
複数のサイトを参考にメソッドを試しましたがうまくいかない為、
コードについてご指摘頂きたいです。
//追記
各ビューのユーティリティ情報です
("スタート画面"ビュー)
カスタムクラス:StartViewController、ID: start
("メールアドレスで登録"ビュー)
カスタムクラス: MailSignUpViewController、ID: mailSignIn
("メールアドレスでログイン"ビュー)
カスタムクラス: MailLogInViewController、ID: mailLogIn
("ログインしたよ"ビュー)
カスタムクラス: HomeViewController、ID: home
よろしくお願いします。
(MailSignUpViewControllerログインです)
import UIKit
import Firebase
import FirebaseAuth
class MailSignUpViewController: UIViewController {
@IBOutlet weak var emailTF: UITextField!
@IBOutlet weak var passwordTF: UITextField!
@IBOutlet weak var usernameTF: UITextField!
//homeへ遷移
static func createInstance() -> MailSignUpViewController {
let storyboard = UIStoryboard(name: "mailSignUp", bundle: nil)
let instance = storyboard.instantiateViewController(withIdentifier:"MailSignUpViewController") as! MailSignUpViewController
return instance
}
override func viewDidLoad() {
super.viewDidLoad()
}
//サインアップボタン!
@IBAction func mailSignUpButton(_ sender: Any) {
guard let email = emailTF.text else { return }
guard let pass = passwordTF.text else { return }
guard let username = usernameTF.text else { return }
Auth.auth().createUser(withEmail: email, password: pass) { user, error in
if error == nil && user != nil {
//homeへ遷移
let homeVC = HomeViewController.createInstance()
self.present(homeVC, animated: true, completion: nil)
print("ユーザー登録したよ")
let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
changeRequest?.displayName = username
changeRequest?.commitChanges { error in
if error == nil {
print("User display name changed!")
self.dismiss(animated: false, completion: nil)
}
}
} else {
print("ユーザー登録失敗!: \(error!.localizedDescription)")
}
}
}
}
(MailLogInViewControllerサインアップです)
import UIKit
import Firebase
import FirebaseAuth
class MailLogInViewController: UIViewController {
@IBOutlet weak var emailTF: UITextField!
@IBOutlet weak var passwordTF: UITextField!
//homeへ遷移
static func createInstance() -> MailLogInViewController {
let storyboard = UIStoryboard(name: "mailLogIn", bundle: nil)
let instance = storyboard.instantiateViewController(withIdentifier:"MailLogInViewController") as! MailLogInViewController
return instance
}
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func mailLogInButton(_ sender: Any) {
Auth.auth().signIn(withEmail: emailTF.text!, password: passwordTF.text!, completion: { (user, error) in
if user != nil
{
//homeへ遷移
let homeVC = HomeViewController.createInstance()
self.present(homeVC, animated: true, completion: nil)
print("ログイン!")
}
else
{
print("ユーザー登録失敗: \(error!.localizedDescription)")
}
}
)}
}
(HomeViewController"ログインしたよ"ビューです)
import UIKit
import Firebase
import FirebaseAuth
class HomeViewController: UIViewController {
static func createInstance() -> HomeViewController {
let storyboard = UIStoryboard(name: "home", bundle: nil)
let instance = storyboard.instantiateViewController(withIdentifier:"HomeViewController") as! HomeViewController
return instance
}
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func handleLogout(_ target: UIBarButtonItem) {
try! Auth.auth().signOut()
self.dismiss(animated: false, completion: nil)
}
}
(コンソールエラーです)
2018-01-01 17:40:01.150310+0900 make01[13866:788932] [Firebase/Analytics][I-ACS023007] Firebase Analytics v.40005000 started
2018-01-01 17:40:01.150539+0900 make01[13866:788932] [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
Optional(<FIRUser: 0x6040000d2280>)
アプリを開いたよ
2018-01-01 17:40:01.641633+0900 make01[13866:788594] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/tanakaatsushi/Library/Developer/CoreSimulator/Devices//data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2018-01-01 17:40:01.644890+0900 make01[13866:788594] [MC] Reading from private effective user settings.
2018-01-01 17:40:01.658948+0900 make01[13866:788594] Could not successfully update network info during initialization.
2018-01-01 17:40:01.748463+0900 make01[13866:788933] TIC Read Status [1:0x0]: 1:57
2018-01-01 17:40:01.748617+0900 make01[13866:788933] TIC Read Status [1:0x0]: 1:57
2018-01-01 17:40:02.010424+0900 make01[13866:788932] TIC Read Status [2:0x0]: 1:57
2018-01-01 17:40:02.010535+0900 make01[13866:788932] TIC Read Status [2:0x0]: 1:57
2018-01-01 17:40:06.773716+0900 make01[13866:788594] [MC] Lazy loading NSBundle MobileCoreServices.framework
2018-01-01 17:40:06.775661+0900 make01[13866:788594] [MC] Loaded MobileCoreServices.framework
2018-01-01 17:40:19.364415+0900 make01[13866:788594] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'home' in bundle NSBundle </Users/tanakaatsushi/Library/Developer/CoreSimulator/Devices//data/Containers/Bundle/Application//make01.app> (loaded)'
*** First throw call stack:
(
0 CoreFoundation 0x0000000112d6d12b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x0000000112401f41 objc_exception_throw + 48
2 UIKit 0x000000011421e97e +[UIStoryboard storyboardWithName:bundle:] + 672
3 make01 0x000000010ff50192 _T0So12UIStoryboardCABSS4name_So6BundleCSg6bundletcfCTO + 82
4 make01 0x000000010ff5acfa _T06make0118HomeViewControllerC14createInstanceACyFZ + 90
5 make01 0x000000010ff571e3 _T06make0123MailLogInViewControllerC04mailcD6ButtonyypFySo4UserCSg_s5Error_pSgtcfU_ + 163
6 make01 0x000000010ff579b2 _T06make0123MailLogInViewControllerC04mailcD6ButtonyypFySo4UserCSg_s5Error_pSgtcfU_TA + 66
7 make01 0x000000010ff51e8c _T0So4UserCSgs5Error_pSgIxxx_ACSo7NSErrorCSgIyByy_TR + 124
8 libdispatch.dylib 0x00000001166bc2f7 _dispatch_call_block_and_release + 12
9 libdispatch.dylib 0x00000001166bd33d _dispatch_client_callout + 8
10 libdispatch.dylib 0x00000001166c85f9 _dispatch_main_queue_callback_4CF + 628
11 CoreFoundation 0x0000000112d2fe39 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
12 CoreFoundation 0x0000000112cf4462 __CFRunLoopRun + 2402
13 CoreFoundation 0x0000000112cf3889 CFRunLoopRunSpecific + 409
14 GraphicsServices 0x0000000118d779c6 GSEventRunModal + 62
15 UIKit 0x00000001138fe5d6 UIApplicationMain + 159
16 make01 0x000000010ff55f97 main + 55
17 libdyld.dylib 0x0000000116739d81 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.35%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる