Eu tenho um tableview que, quando carregado, cada célula pode retornar um NSError, que escolhi exibir em um UIAlertController. O problema é que recebo esse erro no console se vários erros forem retornados.
Aviso: tentativa de apresentar UIAlertController: 0x14e64cb00 em MessagesMasterVC: 0x14e53d800 que já está apresentando (nulo)
Idealmente, eu gostaria de lidar com isso em meu método de extensão 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
}
Com base na resposta de matt, mudei a extensão para uma extensão UIViewController, é muito mais limpa e salva muito código 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)
}
}