我有一个应该在viewDidLoad()函数中打开Alert View Controller的应用程序。它是一个简单的提醒应用程序。这是一段代码:
Axes
但问题是:它没有出现!任何人都可以向我解释原因吗?
我知道我的故事板非常......与视图交错。但那不应该是一个问题,对吗?
答案 0 :(得分:0)
当触发viewDidLoad
时,视图控制器的视图还不在窗口层次结构中,这就是您的警报未显示的原因。
您应该将提醒演示代码放在viewDidAppear
而不是viewDidLoad
。
这个AdminTagWidget
讨论了同样的问题并解释了使用GCD的替代选项。
此answer对viewDidLoad
和viewDidAppear
进行了很好的讨论。
答案 1 :(得分:0)
那是因为您从ViewDidLoad调用它,您的视图尚未设置!您有两种选择:
使用GCD线程调用它:
DispatchQueue.main.async { self.present(alert,animated:true,completion:nil) }