Ich habe eine sehr seltsame Situation hier - Anruf der methodUINAvigationController -> setViewControllers:animated:
verursacht einen Absturz der App. Es freut mich nur auf iOS 10.3.2 und wenn ich die App im Release-Modus erstelle.UINAvigationController -> setViewControllers verursacht einen Absturz
Ich habe mehr Details gesammelt. Ich hoffe, sie können helfen zu verstehen, was passiert.
Das Problem tritt nur unter iOS 10.3.2 und im Veröffentlichungsmodus auf. Ich habe dies auf dem iPhone mit 10.3.2 überprüft und Release Build schlägt fehl, aber Debug funktioniert OK. Darüber hinaus habe ich die vorherige Version der App aus AppStore auf iOS 10.3.2 überprüft und es ist auch OK. Debug- und Release-Builds funktionieren auf allen früheren Versionen von iOS einwandfrei.
Die vorherige Version im AppStore wurde mit einer älteren Version von Xcode erstellt, und jetzt verwende ich den neuesten Xcode 8.3.2. Ich nehme an, es handelt sich um ein Systemproblem, das mit iOS- und Xcode-Versionen zusammenhängt.
Quellen betrifft, so sieht es aus wie:
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)
}
ich schon sagte, es in allen Fällen mit einer Ausnahme :) gut funktioniert. UINAvigationController -> setViewControllers:animated:
ist die Standard-iOS-Methode, die ab iOS 3.0 verfügbar und nicht mehr veraltet ist. Es gibt keine Hacks oder etwas anderes, was den Programmablauf beschädigen kann. Und es ist üblich, es zu benutzen.
P.S. Es gibt kein Debug-Protokoll oder irgendeine andere Nachricht, die ich Ihnen zur Verfügung stellen kann, weil die App einfach vom Bildschirm ohne Benachrichtigung verschwindet.
Können Sie die genaue Absturz Fehlermeldung einfügen? – user1046037
Es gibt keine Fehlermeldung. Ich habe es in der Beschreibung erwähnt. – comrade
Wie also haben Sie erfahren, dass 'setViewControllers' den Absturz verursacht hat? – user1046037