我正在尝试使用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!
的陈述。
所以我的代码肯定在运行,但出于某种原因,它不会显示警告......
我做错了什么?
答案 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
的礼物。