2017-09-06 5 views
0

Je refactoring un projet existant pour quitter l'utilisation de .storyboards et supprimé l'interface principale initiale dans .plist, mais pour une raison quelconque, l'application crée deux instances d'UIWindow.iOS App crée deux UIWindow

UIWindows

Je ne sais pas pourquoi cela se produit, et le résultat de ceci est quand je crée mon UIWindow réelle et utiliser makeKeyAndVisible() pour une seconde, je reçois un écran noir jusqu'à ce que la rootViewController réelle devient visible, Cela se produit parce que dans cette fraction de secondes, il affiche la première UIWindow dont la couleur est nil. Si quelqu'un a une idée sur les raisons de ce qui se passe, je vous serais reconnaissant un tas;)

EDIT 1:

AppDelegate.swift

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

    window = UIWindow(frame: UIScreen.main.bounds) 
    appCoordinator.start() 

    return true 
} 

AppCoordinator.swift

func start() { 
     let mainVC = UIStoryboard(storyboard: .main).instantiateInitialViewController() 
    window.backgroundColor = .white 
    window.rootViewController = mainVC 
    window.makeKeyAndVisible() 
} 
+0

Afficher votre code AppDelegate? – DonMag

+0

@DonMag a ajouté le code appDelegate :) –

+0

Désolé, je ne peux pas dupliquer la "double instance" de 'UIWindow' en utilisant le code standard pour le fonctionnement sans" Interface principale "définie. Je suppose que vous voyez cela dans Debug View Hierarchy? Comment assignes-tu 'window' dans' appCoordinator'? – DonMag

Répondre

0

Vérifiez que "Interface principale" est vide:

enter image description here

+0

Merci pour le commentaire, oui c'est :) –