J'ai récemment commencé un nouveau projet avec le dernier Xcode et maintenant la fonction
self.navigationController? .pushViewController
pour pousser un nouveau contrôleur ne fonctionne pas.
J'ai regardé des réponses similaires et vérifié mes propres anciens projets où cela fonctionne, ils ont mentionné que le contrôleur de navigation était nil mais je pensais avoir résolu cela.
Je pense que cela a à voir avec le nouveau fichier SceneDelegate
qui fait partie de la façon dont les vues sont gérées.
Voici le code du premier VC
qui apparaît dans l'application dans le fichier SceneDelegate
.
let nav1 = UINavigationController() let mainView = MainViewController(nibName: nil, bundle: nil) //ViewController = Name of your controller nav1.viewControllers = [mainView] // Use a UIHostingController as window root view controller. if let windowScene = scene as? UIWindowScene { let window = UIWindow(windowScene: windowScene) // window.rootViewController = UIHostingController(rootView: contentView) window.rootViewController = nav1 self.window = window window.makeKeyAndVisible() }
3 Réponses :
J'ai eu le même problème avec Xcode 11.1 avec un nouveau projet.
Supprimez le fichier SceneDelegate.swift et supprimez également ses méthodes déléguées de AppDelegate.swift . Cette solution a fonctionné pour moi.
Mon code open source créé avec Xcode 11 et Swift 5. https://github.com/gauravparvadiya/swift-news-reddit p >
Supprimez le fichier SceneDelegate.swift et ses méthodes déléguées.
Comme ils l'ont dit ci-dessus, supprimer SceneDelegate.swift, les méthodes sceneDelegate de AppDelegate.swift PLUS supprimez-les du fichier plist: UISceneConfigurations UIWindowSceneSessionRoleApplication
key: UISceneConfigurationName value: Default Configuration key: UISceneDelegateClassName</key> value: $(PRODUCT_MODULE_NAME).SceneDelegate key: UISceneStoryboardFile value: Main
Si vous ne parvenez pas à les supprimer, vous obtiendrez une vue noire lorsque vous exécuterez votre application. Mais, les messages d'erreur de la console devraient vous aider à supprimer les éléments nécessaires du plist.
Même problème et j'essaie toujours de le résoudre. Si ennuyant
Je suis capable de supprimer des storyboards mais pour une raison quelconque, je ne peux pas me débarrasser de la référence. Continue de lancer une erreur. Je suppose que cela avait aussi à voir avec le délégué de la scène