質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.27%

  • Swift

    5294questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    3015questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Google Apps Script

    401questions

    Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

  • Facebook

    327questions

    Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

  • Firebase

    272questions

    Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

別のストーリーボード へ遷移したいですThread 1: signal SIGABRTエラー

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 58

tanaka_atsushi

score -6

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ページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

-1

このサイトを参考に、別ストーリーボード同士で遷移することができました!
見てくれた皆様ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.27%

関連した質問

同じタグがついた質問を見る

  • Swift

    5294questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    3015questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Google Apps Script

    401questions

    Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

  • Facebook

    327questions

    Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

  • Firebase

    272questions

    Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。