如何在Swift中显示另一个UIAlertController

时间:2016-03-13 18:31:31

标签: swift uialertcontroller

我想向用户显示一次消息。

 override func viewWillAppear(animated: Bool) {
            super.viewWillAppear(animated)

            let defaultsDatafirstTrue = NSUserDefaults.standardUserDefaults()
            if let  _ = defaultsDatafirstTrue.stringForKey("firstTrue") {
            } else {
                let alertController = UIAlertController(title: "You can add road markers just do long press on the Map", message: "", preferredStyle: .Alert)
                let OKAction = UIAlertAction(title: "OK", style: .Default) { (action:UIAlertAction) in
                }
                alertController.addAction(OKAction)
                self.presentViewController(alertController, animated: true, completion:nil)
                defaultsDatafirstTrue.setObject("true", forKey: "firstTrue")
            }
   }

但我有错误Warning: Attempt to present <UIAlertController: 0x7c2a8000> on <****: 0x7d193800> whose view is not in the window hierarchy!因为在第一次运行时,iOS应用会向用户显示将使用位置确定的警告。 如何在系统消息后看到我的消息?

1 个答案:

答案 0 :(得分:1)

运行viewDidAppear:的代码而不是viewWillAppear:

viewWillAppear:的问题是它在视图实际可见之前被调用,因此您无法从中显示另一个视图。此外,viewWillAppear:实际上可以被多次调用然后被取消(例如,用于交互式过渡)。