【Xcode11.3】MainInterfaceでStoryBoardが変わらない問題

iPhoneApp

MainInterfaceでStoryBoardを選択しても反映されない

このような疑問に答えていきます。

私もXcodeを新しくしてからこの問題が起こるようになり、困っていました。色々と調べてみた結果、解決策がわかったので紹介してきたいと思います〜。

本記事で紹介すること

  • MainInterfaceを変更してもStoryBoardが変わらない原因
  • 解決策

 

MainInterfaceを変更してもStoryBoardが変わらない原因

まず結論から言ってしまうと「SceneDelegate.swift」が邪魔をしています。

このエラーに直面している方は、SceneDelegateというファイルが作成されているはずです。これはアプリ作成時に自動で作られるのものなので有害ではないですよ笑

Sceneって何?という方は以下の記事がわかりやすく説明してあるのでぜひご覧ください〜。

【xcode 11】新たに導入されたsceneDelegateの各メソッドが呼ばれるタイミング - Qiita
環境 xcode 11.0 swift 5.0.1 iOS 13.0 SceneDelegateって何してんの アプリをつくった段階でデフォルトでつくられるファイルのひとつ。 アプリのUIを複数インスタンスで管理する方法(...

端的にいうと「AppDelegateと同じような機能&さらに細かくわかるようになった」みたいな感じです。

便利なものですが、このSceneが悪さをしているみたいです

それでは、この問題の解決策を紹介していきますね〜。

 

解決策

解決策ですが、このSceneというものを削除すればOKです。

削除しても特に害はないので、安心してくださいね。それでは、削除する方法を紹介していきます。

 

まずは、AppDelegateでwindowを宣言してください。

class AppDelegate:UIResponder,UIApplicationDelegate {

   var window:UIWindow? //ここを追加!

次にInfo.plistを開いて、「Application Scene Manifest」と書いてある項目を削除してください!

最後にAppDelegateをもう一度開き、以下の2つの関数を削除してください。

func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {

}

func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {

}

以上で終わりです!

これで今まで通りMainInterfaceを変更することでStoryBoardが変わるようになりました。

 

XcodeやSwiftのバージョンが変わると仕様が変わるので結構困りますよね笑

もしわからない問題があった時は英語で調べてみるのがおすすめです!以下のURLが英語版Googleなので、お気に入りにでも登録しておいてくださいね〜。

Google

 

それでは、iPhoneアプリ開発頑張っていきましょう〜!

タイトルとURLをコピーしました