web-dev-qa-db-fra.com

Pourquoi le contrôleur de vue racine configuré manuellement affiche-t-il un écran noir?

J'ai configuré manuellement un contrôleur de vue racine pour iOS 13 à l'aide de Xcode 11, Beta 5. Suppression des références à main dans les informations de déploiement, y compris la suppression de la référence à main dans info.plist, ce que je n'ai jamais eu à faire avant iOS 13. Configuration pour La fenêtre se fait dans SceneDelegate, imbriquée dans la fonction willConnectTo. Normalement, l'application plantait si je manquais une étape. Maintenant, je reçois un écran noir vierge au lieu de voir la configuration de mon contrôleur de vue, par exemple un fond rouge. Toute cette utilisation fonctionne avant la version bêta 5.

Avoir effacé tout le contenu et les paramètres du simulateur. Effacé le dossier de génération et exécuté l'application sur un appareil physique. Ont également utilisé un autre ordinateur avec Xcode 11, beta 5. Tous les résultats sur le même écran noir vierge. Qu'est-ce que je rate?

Voici ma configuration manuelle pour le contrôleur de vue racine dans le fichier SceneDelegate imbriqué dans la fonction willConnectTo:

let viewCon = ViewController()
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = viewCon
window?.makeKeyAndVisible()
5
Adnan
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

    guard let windowScene = (scene as? UIWindowScene) else { return }

    let window = UIWindow(windowScene: windowScene)
    self.window = window
    let mainstoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let newViewcontroller:UIViewController = mainstoryboard.instantiateViewController(withIdentifier: "YourVCName") as! YourVCName
    navigationController = UINavigationController(rootViewController: newViewcontroller)
    window.rootViewController = navigationController
    window.makeKeyAndVisible()
}

essayez ce code !! si vous utilisez ios 13 et que votre xcode est mis à jour, vous devez définir votre contrôleur de vue racine en délégué de scène au lieu de délégué d'application.

1
Vipin Pareek