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