J'ai une situation très étrange ici - appel du methodUINAvigationController -> setViewControllers:animated:
provoque un plantage de l'application. Ca ne se passe que sur iOS 10.3.2 et quand je construis l'application en mode release.UINAvigationController -> setViewControllers provoque un plantage
J'ai recueilli plus de détails. J'espère qu'ils peuvent aider à comprendre ce qui se passe.
La question apparaît sur iOS 10.3.2 et en mode de sortie uniquement. J'ai vérifié ceci sur l'iPhone avec 10.3.2 et la construction de version échoue mais le débogage fonctionne bien. De plus, j'ai vérifié la version précédente de l'application depuis AppStore sur iOS 10.3.2 et c'est OK aussi. Les versions de débogage et de publication fonctionnent correctement sur toutes les versions précédentes d'iOS.
La version précédente a été construite avec AppStore ancienne version de Xcode, et maintenant je suis en utilisant les dernières Xcode 8.3.2. Je suppose que c'est le problème du système, qui est lié aux versions iOS et Xcode.
En ce qui concerne les sources, il ressemble à:
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
...
window = UIWindow(frame: UIScreen.main.bounds)
....
let navigationController = UINavigationController(rootViewController: viewController)
window.rootViewController = navigationController
window.makeKeyAndVisible()
}
ViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
...
continueButton.addTarget(self, action: #selector(navigateForward), for: .touchUpInside)
...
}
func navigateForward(sender: UIButton!) {
let nextController = FinalBuilder.viewController()
navigationController?.setViewControllers([nextController], animated: true)
}
je l'ai dit, il fonctionne très bien dans tous les cas sauf un :). UINAvigationController -> setViewControllers:animated:
est méthode standard iOS, disponible à partir de iOS 3.0+ et non dépréciée maintenant. Il n'y a pas de hacks ou quelque chose d'autre qui peut corrompre le flux du programme. Et c'est une façon habituelle de l'utiliser.
P.S. Il n'y a pas de journal de débogage ou tout autre message que je peux vous fournir parce que l'application disparaît de l'écran sans aucune notification.
Pouvez-vous coller le message d'erreur crash exact? – user1046037
Il n'y a pas de message d'erreur. Je l'ai mentionné dans la description. – comrade
Alors comment avez-vous de savoir que 'setViewControllers' a causé l'accident? – user1046037