应用程序没有显示警报视图控制器?

时间:2017-05-20 20:34:27

标签: ios swift uialertcontroller

我有一个应该在viewDidLoad()函数中打开Alert View Controller的应用程序。它是一个简单的提醒应用程序。这是一段代码:

Axes

但问题是:它没有出现!任何人都可以向我解释原因吗?

我知道我的故事板非常......与视图交错。但那不应该是一个问题,对吗?

2 个答案:

答案 0 :(得分:0)

当触发viewDidLoad时,视图控制器的视图还不在窗口层次结构中,这就是您的警报未显示的原因。

您应该将提醒演示代码放在viewDidAppear而不是viewDidLoad

这个AdminTagWidget讨论了同样的问题并解释了使用GCD的替代选项。

answerviewDidLoadviewDidAppear进行了很好的讨论。

祝你好运!

答案 1 :(得分:0)

那是因为您从ViewDidLoad调用它,您的视图尚未设置!您有两种选择:

  • 从ViewDidAppear(建议)中调用它。
  • 使用GCD线程调用它:

    DispatchQueue.main.async {   self.present(alert,animated:true,completion:nil) }