Ho un tableview che, una volta caricato, ogni cella potrebbe eventualmente restituire un NSError, che ho scelto di visualizzare in un UIAlertController. Il problema è che ottengo questo errore nella console se vengono restituiti più errori.
Avviso: tentativo di presentare UIAlertController: 0x14e64cb00 su MessagesMasterVC: 0x14e53d800 che sta già presentando (null)
Idealmente, mi piacerebbe idealmente gestirlo nel mio metodo di estensione 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
}
Sulla base della risposta di matt, ho cambiato l'estensione in un'estensione UIViewController, è molto più pulita e consente di risparmiare molto codice 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)
}
}