Ich versuche derzeit, einen AlertController mit einem TextField innerhalb zu öffnen. WennHinzufügen von TextField zu AlertController bricht AlertController
läuftlet configAlert = UIAlertController(title: "Configure Add-On", message: "Enter Your Add-On Name:", preferredStyle: UIAlertControllerStyle.alert)
configAlert.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action: UIAlertAction!) in
// Handle Input
}))
present(configAlert, animated: true, completion: nil)
alles funktioniert gut, aber sobald ich die TextField-
configAlert.addTextField { (textField) in
textField.placeholder = "Name"
}
die Benachrichtigung dauert etwa 10-mal länger hinzufügen sofort zu öffnen, entlässt, und ich diesen Fehler in der Konsole spammed etwa 30-mal:
2017-11-26 13:04:08.985783-0500 MinelyMod[380:14792] Warning: Attempt to dismiss from view controller <UISplitViewController: 0x147e0a6a0> while a presentation or dismiss is in progress!
Hier wird die fertige AlertController thats, andernfalls
let configAlert = UIAlertController(title: "Configure Add-On", message: "Enter Your Add-On Name:", preferredStyle: UIAlertControllerStyle.alert)
configAlert.addTextField { (textField) in
textField.placeholder = "Name"
}
configAlert.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action: UIAlertAction!) in
// Handle Input
}))
present(configAlert, animated: true, completion: nil)
Welche Art von Ereignis löst den Aufruf Ihres Codes aus? Es sieht so aus, als würde es mitten in der Präsentationsanimation für einen anderen Controller passieren. – Bill
Stellen Sie sicher, dass Sie die Methode 'present (_: UIViewController)' aus dem Hauptthread aufrufen. Übrigens sollten Sie auch Ihren Handle-Eingabecode posten. –
Ich habe es kopiert und in ein neues Projekt eingefügt und es hat gut für mich funktioniert. Ich benutze xcode 8.3. Versuchen Sie das und sehen Sie, ob es dort funktioniert und wenn ja, ist das Problem woanders. – dscrown