Dismiss all UIAlertControllers currently presented

func dismissAnyAlertControllerIfPresent() {
    guard let window :UIWindow = UIApplication.shared.keyWindow , var topVC = window.rootViewController?.presentedViewController else {return}
    while topVC.presentedViewController != nil  {
        topVC = topVC.presentedViewController!
    }
    if topVC.isKind(of: UIAlertController.self) {
        topVC.dismiss(animated: false, completion: nil)
    }
}

This worked for me!

Edit: for iOS 13+

 func dismissAnyAlertControllerIfPresent() {
       guard let window = windows.first(where: { $0.isKeyWindow }),
       var topVC = window.rootViewController?.presentedViewController else {return}
       while topVC.presentedViewController != nil  {
           topVC = topVC.presentedViewController!
       }
       if topVC.isKind(of: UIAlertController.self) {
           topVC.dismiss(animated: false, completion: nil)
       }
   }

You could subclass your UIAlertControllers, attach NSNotification observers to each which would trigger a method within the UIAlertController subclass to dismiss the alert controller, then post an NSNotification whenever you're ready to dismiss, ex:

class ViewController: UIViewController {
    func presentAlert() {
        // Create alert using AlertController subclass
        let alert = AlertController(title: nil, message: "Message.", preferredStyle: UIAlertControllerStyle.Alert)
        // Add observer to the alert
        NSNotificationCenter.defaultCenter().addObserver(alert, selector: Selector("hideAlertController"), name: "DismissAllAlertsNotification", object: nil)
        // Present the alert
        self.presentViewController(alert, animated: true, completion:nil)
    }
}

// AlertController subclass with method to dismiss alert controller
class AlertController: UIAlertController {
    func hideAlertController() {
        self.dismissViewControllerAnimated(true, completion: nil)
    }
}

Then post the notification whenever you're ready to dismiss the alert (in this case, when the push notification is pressed):

NSNotificationCenter.defaultCenter().postNotificationName("DismissAllAlertsNotification", object: nil)