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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

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

Q&A

解決済

1回答

682閲覧

AppDelegate.swiftからMain.storyboardに遷移するロジックについて

Kimsehwa

総合スコア312

Swift

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

0グッド

0クリップ

投稿2017/08/01 03:17

https://github.com/aslanyanhaik/youtube-iOS/blob/4b1d1c02d04c0d80ea52b6ba7dbda15c5701963a/YouTube

IOS開発の概要を理解するため、上記OSSの分析をしたいと思います。

最初に呼ばれるのはAppDelegate.swiftと存じます。
後、ファイル名からみて最初呼ばれるviewはMain.storyboardかなと思いますが認識合ってますでしょうか。

もし正しい場合AppDelegate.swiftからMain.storyboardに遷移するロジックは何になるでしょうか。

YouTube/AppDelegate.swift

YouTube/Base.lproj/Main.storyboard

このOSSに限らずソースだけをみてアプリの遷移順を確認したく質問いたします。
何かアドバイスとなることがありましたらなんでもご教示ください。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

どのアプリもAppDelegate.swiftのdidFinishLaunchingWithOptionsが最初に呼ばれます。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { return true }

このライブラリはとくになにもやっていないので、どのストーリーボードがアプリ起動時に一番最初に呼ばれるかチェックします。
TargetsのGeneralのDeploymentInfoのMainInterfaceにMainとあるので、
最初に呼ばれるストーリーボードはMain.storyboardだということが分かります。
イメージ説明

どのコントローラーが呼ばれるかチェックします。
Main.storyboardを見て、IsInitialViewControllerになっているControllerを探します。
イメージ説明

コントローラーのクラスは、NavVC.swiftとなっているので、NavVC.swiftを見ます。
イメージ説明

ControllerのライフサイクルはviewDidLoadとかviewWillAppearとかが最初に呼ばれるメソッドなのでそこを見ます。

//MARK: ViewController lifecycle override func viewDidLoad() { super.viewDidLoad() self.customization() }

あとはself.customization()がなにしているのか見ていく。。。
ブレークポイントを置くとどのメソッドが順番で呼ばれるかわかりやすいです。

投稿2017/08/01 03:57

gorira1321

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kimsehwa

2017/08/01 06:47

なるほど、ご丁寧な回答ありがとうございます!ちょっと現在macお持ちではない状況でGUIでは見れませんが、 Main.storyboard -> NavVC.swiftまではなんとなく理解できました。 一つ質問ですが、Deployment infoの設定はソース上だとどこになりますでしょうか。 AppDelegate.swiftからBase.lproj下のMain.storyboardをどうやって参照できるかがよくわりません。 ソース上でこれ(Base.lproj)に対する定義が見当たらなかったので、、
gorira1321

2017/08/01 07:33

Xcode開いて、TargetsをYoutube選択すると、Genral,Capabilitiesとかタブがあって、そこにDeployment infoがあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問