J'ai une tableview qui, une fois chargée, chaque cellule pourrait éventuellement renvoyer un NSError, que j'ai choisi d'afficher dans un UIAlertController. Le problème est que j'obtiens cette erreur dans la console si plusieurs erreurs sont renvoyées.
Avertissement: tentative de présenter UIAlertController: 0x14e64cb00 sur MessagesMasterVC: 0x14e53d800 qui présente déjà (null)
Idéalement, je voudrais idéalement gérer cela dans ma méthode d'extension UIAlertController.
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
}
Sur la base de la réponse de matt, j'ai changé l'extension en une extension UIViewController, elle est beaucoup plus propre et économise beaucoup de code presentViewController.
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)
}
}