¿Cómo descartar un UIAlertController sin acciones en SWIFT?

Visualizo un UIAlertController cuando mi image se está descargando. Cuando finalice la descarga, quiero presionar un controller de vista. Tengo un error en la console, porque no descarté el controller de alerta:

pushViewController:animated: called on <UINavigationController 0x7fb190c6ee00> while an existing transition or presentation is occurring; the navigation stack will not be updated. 

En mi controller de vista principal, cuando la descarga finaliza, presiono otra vista:

 override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { //.... var alert = UIAlertController(title: "Alert", message: text, prefernetworkingStyle: UIAlertControllerStyle.Alert) self.presentViewController(alert, animated: true, completion: nil) dispatch_async(dispatch_get_main_queue(), { if let cellToUpdate = tableView.cellForRowAtIndexPath(indexPath) { self.performSegueWithIdentifier("postview", sender: self) } }) } 

Intenté despedirViewControllerAnimated pero tengo exactamente el mismo error:

 dispatch_async(dispatch_get_main_queue(), { if let cellToUpdate = tableView.cellForRowAtIndexPath(indexPath) { alert.dismissViewControllerAnimated(true, completion: nil) self.performSegueWithIdentifier("postview", sender: self) } }) 

No debe llamar a performSegueWithIdentifier antes de que se haya descartado el controller de vista anterior. Para sincronizar esto correctamente, hágalo desde el manejador de finalización:

 dispatch_async(dispatch_get_main_queue(), { if let cellToUpdate = tableView.cellForRowAtIndexPath(indexPath) { alert.dismissViewControllerAnimated(true, completion: { self.performSegueWithIdentifier("postview", sender: self) }) } }) 

Ahora la llamada para realizar segue no comenzará hasta que finalice la finalización, evitando el error que ve.