有时当我创建一个UIAlertController并将其呈现在if语句中时,我会收到警告Presenting view controllers on detached view controllers is discouraged.
如何规避该警告?在呼叫和呼叫方面我能做些什么吗?介绍UIAlertController?我应该使用不同的东西,然后将UIAlertController放在if语句中吗?
if(!defaults.boolForKey("hasLaunchedOnce")) {
updateSettingsLabel.hidden = false
var alert = UIAlertController(title: "Instructions", message: "Sample Text", preferredStyle: .Alert)
let okAction = UIAlertAction(title: "OK", style: .Default) {
(action: UIAlertAction!) -> Void in
}
alert.addAction(okAction)
presentViewController(alert, animated: true,completion: nil)
}
答案 0 :(得分:4)
您应该在UIAlertController
或视图显示后的某个位置显示viewDidAppear()
。在viewDidAppear()
之前,视图层次结构尚未就绪,因此在此之前显示另一个视图可能会有问题。
答案 1 :(得分:0)
尝试像这样执行presentViewController:
self.view.window?.rootViewController?.presentViewController(alert, animated: true, completion: nil)