Après avoir mis à jour Xcode, une partie critique de mon application a cessé de fonctionner.
Lorsque mon application se lance, j'exécute une fonction pour vérifier des drapeaux booléens et définir le rootViewController correct.
Mais le code que j'utilise pour le définir a maintenant cessé de fonctionner
class func setLoginAsInitialViewContoller(window:UIWindow) {
print("SET LOGIN")
let storyboard = UIStoryboard(name: "Login", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "LoginViewController")
controller.modalPresentationStyle = .overFullScreen
window.rootViewController = controller
window.makeKeyAndVisible()
}
Plus précisément, lorsque l'application arrive à l'avant-dernière ligne window.rootViewController = controller
, elle plante avec une erreur libc++abi.dylib: terminating with uncaught exception of type NSException
.
La fonction ci-dessus se trouve dans une classe appelée Utilities.swift
et j'appelle la fonction depuis mon AppDelegate.swift
comme indiqué ci-dessous:
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var storyboard: UIStoryboard? = nil
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.isIdleTimerDisabled = true
Utilities.decideInitialViewController(window: self.window!)
return true
}
Toute solution ou correction sur comment je peux définir le contrôleur racine est grandement appréciée.
Merci!