UIAlertController代码运行,但不会显示警报

时间:2014-11-29 00:41:45

标签: swift uialertcontroller

我正在尝试使用swift制作应用内弹出警报,但我遇到了一个我一无所知的错误。

以下是我用来提示警报的代码:

let welcomeAlert = UIAlertController(title: "Welcome!", message: “message here”, preferredStyle: UIAlertControllerStyle.Alert)
welcomeAlert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(welcomeAlert, animated: true, completion: nil)

println("welcome alert displayed!")

我回来的错误说:

Warning: Attempt to present <UIAlertController: 0x7b89a950> on <MyApp.RootClientViewController: 0x7aea8fb0> whose view is not in the window hierarchy!

紧接着是一条印有陈述welcome alert displayed!的陈述。

所以我的代码肯定在运行,但出于某种原因,它不会显示警告......

我做错了什么?

1 个答案:

答案 0 :(得分:3)

错误消息告诉您答案:&#34;视图不在窗口层次结构中!&#34; 表示调用时屏幕上不显示self.view(从技术上讲,它意味着UIApplication.sharedApplication().keyWindow不是self.view)的祖先。

通常在viewDidLoad()viewWillAppear(animated: Bool)中展示视图控制器时会发生这种情况。等待viewDidAppear(animated: Bool)UIApplication.sharedApplication().delegate.window.rootViewController或来自UIApplication.sharedApplication().keyWindow.rootViewController的礼物。