Ich habe eine Tabellenansicht, in der beim Laden möglicherweise jede Zelle einen NSError zurückgibt, den ich in einem UIAlertController angezeigt habe. Problem ist, dass ich diesen Fehler in der Konsole erhalte, wenn mehrere Fehler zurückgegeben werden.
Warnung: Versuch, UIAlertController: 0x14e64cb00 in MessagesMasterVC: 0x14e53d800 zu präsentieren, das bereits präsentiert wird (null)
Im Idealfall möchte ich dies in meiner UIAlertController-Erweiterungsmethode behandeln.
class func simpleAlertWithMessage(message: String!) -> UIAlertController {
let alertController = UIAlertController(title: nil, message: message, preferredStyle: UIAlertControllerStyle.Alert)
let cancel = UIAlertAction(title: "Ok", style: .Cancel, handler: nil)
alertController.addAction(cancel)
return alertController
}
Basierend auf der Antwort von matt habe ich die Erweiterung in eine UIViewController-Erweiterung geändert, die viel sauberer ist und viel presentViewController-Code speichert.
func showSimpleAlertWithMessage(message: String!) {
let alertController = UIAlertController(title: nil, message: message, preferredStyle: UIAlertControllerStyle.Alert)
let cancel = UIAlertAction(title: "Ok", style: .Cancel, handler: nil)
alertController.addAction(cancel)
if self.presentedViewController == nil {
self.presentViewController(alertController, animated: true, completion: nil)
}
}