Search code examples
iosuialertviewuisplitviewcontroller

My UIAlertView won't dismiss from MasterViewController of UISplitViewController


I have the following code in my MasterViewController:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(false);
    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    if((appDelegate.firstTime) != nil){
        self.displayFirstTimeAlert()
    }
}

It dutifully displays the alert:

    func displayFirstTimeAlert(){

        let message = "Please go to settings and set your preferred zipcode."
        let alertView = UIAlertView(title: "Welcome", message: message, delegate: nil, cancelButtonTitle: "Dismiss")
        alertView.show()
}

However when I touch Dismiss nothing happens? What is going on?


Solution

  • I don't know why the code you have above is not working, as I tested it and it does in fact dismiss. However, you shouldn't really be using UIAlertView any longer since it is deprecated... UIAlertView is deprecated. Use UIAlertController with a preferredStyle of UIAlertControllerStyleAlert instead

    So try presenting the alert this way...

    func displayFirstTimeAlert(){
        let message = "Please go to settings and set your preferred zipcode."
        var alert = UIAlertController(title: "Welcome", message: message, preferredStyle: UIAlertControllerStyle.Alert)
        alert.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default, handler: nil))
        self.presentViewController(alert, animated: true, completion: nil)
    }