我想向用户显示一次消息。
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应用会向用户显示将使用位置确定的警告。
如何在系统消息后看到我的消息?
答案 0 :(得分:1)
运行viewDidAppear:
的代码而不是viewWillAppear:
。
viewWillAppear:
的问题是它在视图实际可见之前被调用,因此您无法从中显示另一个视图。此外,viewWillAppear:
实际上可以被多次调用然后被取消(例如,用于交互式过渡)。