Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21085

【Swift】Main.StoryBoardを消して新しいStoryBoardでスタートさせるときの留意点

$
0
0

シミュレーターがずっと真っ暗

毎度おなじみ初心者応援記事(未来の自分への備忘録)です。
一緒に一つずつクリアしましょう。

今回はxcodeで新規プロジェクトをcreateしたときに、Main.Storyboardを消して、自作のStoryboardを起動してみようと初心者から一歩進んだ方向けかと思います。
まぁ今更感もあるかもしれませんが、探すのに苦労した自分が忘れないようにしたいのです。
アウトプット大事。

iOS12以前ではIs Initial View Controllerという項目にチェックをつけるだけで自作のStoryboardに切替られたはずでした。
スクリーンショット 2020-04-26 1.27.00.png

しかしながらiOS13からiPadで同一アプリを複数画面で起動できるようにしたとかしてないとかっていう頭がいいのか悪いのかわからない使い方ができる(?)ようになった関係で、いろいろと仕様変更があったようです。
詳しくは@omochimetaru様のiOS13のSceneDelegate周りのアプリの起動シーケンスで書かれてます。

まぁ僕のような初心者には何度読み返しても仕様が変わったんだなということしか理解できないのですが、この為に一手間加えないといつまでもシミュレート起動できないことになりました。
いつまでもログに「Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?」と表示されていろいろいじってみても治らず、頭を捻っている方への処方箋となれば幸いです。

なお、今回はStoryboardを使って行きます。コードだけで書かれる方には非対応ですので、ご了承ください。

脱・Main.Storyboard、脱・超初心者

早速行きましょう
さっさとMain.Storyboardを削除します。
↓のような選択が表示されますが、Move To Trashでいいと思います。これは表面上は消えるけど、プロジェクトフォルダには残す?残さない?という問いで、今回はMainに完全に消えてもらいます。
スクリーンショット 2020-04-26 1.44.17.png
消した後に、初期画面は認証画面にしようと思いAuth.StoryboardというStoryboardを作成しました。
スクリーンショット 2020-04-26 2.00.55.png

このまま一度Runさせようとすると、もはや起動しません。
まずはIs Initial View Controllerにチェックを入れてください。
スクリーンショット 2020-04-26 1.27.00.png
(画像は使い回し)

TARGETSの変更

さて、ここで勘の良い方はTARGETS内にMain Interfaceがあることに気づいたはずです。
スクリーンショット 2020-04-26 2.02.22.png
でもこれは空白でも動きました。今回は一応Auth.Storyboardを選択しておきます。詳しいかた教えてください。

でもRunしても起動しません。

真犯人はInfo.plist

犯人はこいつだ!
ということでInfo.plist内の「Main storyboard file base name」といういかにもなプロパティがありました。こいつを直しましょう
スクリーンショット 2020-04-26 2.05.20.png

はい。

起動しません!

なんとApplication Scene Manifestというプロパティの中に真犯人がいました。
スクリーンショット 2020-04-26 2.08.38.png
こいつがMainのままや!

というわけでこいつを「Auth」にしたら起動できるはずです。

スクリーンショット 2020-04-26 2.12.57.png

お疲れ様でした。
この記事が誰かの手助けになれば、恐悦至極にございます。


Viewing all articles
Browse latest Browse all 21085

Trending Articles