Search code examples
iosxcodestoryboardxcode11

Xcode 11, Main Interface fixed with Main.storyboard


Main Interface is not changing with another storyboard in Xcode 11, it always run with Main.storyboard after changing with another storyboard, I have checked "is initial View Controller" after using a View Controller in new Storyboard.

I have tested in Xcode 10, it was working fine.

Did I miss something in Xcode 11?

enter image description here enter image description here enter image description here enter image description here In plist. enter image description here


Solution

  • Swift 5 with iOS 13

    One more changes require in info.plist file under Application Scene Manifest group.

    enter image description here

    Change name in Application Scene Manifest also.

    Additional:
    If you want to create the root window without a storyboard, you need removing the Main storyboard file base name and Storyboard Name item from Info.plist, and create the window programmatically in SceneDelegate:

    class SceneDelegate: UIResponder, UIWindowSceneDelegate {
    
        var window: UIWindow?
    
        @available(iOS 13.0, *)
        func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
            // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
            // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
            // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
            guard let windowScene = (scene as? UIWindowScene) else { return }
            window = UIWindow(windowScene: windowScene)
            // continue to create view controllers for window
        }
    
        //......
    }