closures当前提供的所有UIAlertController

有没有办法解雇目前呈现的所有UIAlertControllers?

这是因为从任何地方和我的应用程序的任何状态,当按下推送通知时,我需要到某个ViewController。

你可以UIAlertController你的UIAlertController ,附加NSNotification观察者到每个会触发一个方法在UIAlertController子类中closures警报控制器,然后发布NSNotification每当你准备解雇,例如:

 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) } } 

然后,只要您准备好解除警报(在这种情况下,按下推送通知时)就发布通知:

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

您可以通过这种方式closures当前正在呈现给用户的UIAlertController

 self.dismissViewControllerAnimated(true, completion: nil) 

他们是模态的:任何时候都只有一个,而且会有全部的重点。

这是你的责任,创build你的警报,这是用户应该解雇他们。 如果需要进一步控制,您需要制作(或使用)自定义视图来显示一堆消息。