的UIAlertViewController

的UIAlertViewController

我是新手,我想取消出现的警报
  新警报出现时的屏幕。


我试过了:

    func showDefaultAlert(controller: UIViewController, title: String, message: String) {

    // create the alert
    let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)

    // add an action (button)
    alert.addAction(UIAlertAction(title: defaultTextForNormalAlertButton, style: UIAlertActionStyle.Default, handler: nil))

    // show the alert
    //controller.presentViewController(alert, animated: true, completion: nil)

    self.showAlert(controller, alert: alert)

}

func showAlert(controller: UIViewController, alert: UIAlertController) {

        if let currentPresentedViewController = UIApplication.sharedApplication().keyWindow?.rootViewController?.presentedViewController {
            if currentPresentedViewController.isKindOfClass(UIAlertController) {
                currentPresentedViewController.dismissViewControllerAnimated(false, completion: {
                    controller.presentViewController(alert, animated: true, completion: nil)
                })
            }else {

                controller.presentViewController(alert, animated: true, completion: nil)
            }
        }
    }
 }



// Call to above method in view controller class:

SPSwiftAlert.sharedObject.showDefaultAlert(self, title:"Title1", message1: "Message")

SPSwiftAlert.sharedObject.showDefaultAlert(self, title:"Title2", message: "Message2")


--
但是上面的代码给出了运行时错误为:

 Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<UIAlertController: 0x7fceb95dcfb0>)

最佳答案

显示UIAlertController后,您可以检查其可见性,如下所示:

出示UIAlertController

let alerts=UIAlertController(title: "Test", message: "Test", preferredStyle: .Alert)

presentViewController(alerts, animated: true, completion: nil)


检查UIAlertController是否可见:

if (alerts.isViewLoaded())
{
        print("Visible")
        //Here you can dismiss the controller
        //dismissViewControllerAnimated(true, completion: nil)
}


查看此演示:Source code

关于ios - 在呈现新的UIAlertViewController之前关闭旧的UIAlertViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36933184/

10-10 21:06