为什么我的弹出窗口延迟(Swift)?
我是一个新手Swift程序员,正在开发他的第一个应用程序。作为一个简单游戏的一部分,我执行一个函数(F),其中的代码如下为什么我的弹出窗口延迟(Swift)?,swift,popup,delay,Swift,Popup,Delay,我是一个新手Swift程序员,正在开发他的第一个应用程序。作为一个简单游戏的一部分,我执行一个函数(F),其中的代码如下 if let vc = storyboard?.instantiateViewController(withIdentifier: "P2CompetitionPopUpId") as? P2_Competition_Pop_Up { vc.modalPresentationStyle = .overCurrentContext
if let vc = storyboard?.instantiateViewController(withIdentifier:
"P2CompetitionPopUpId") as? P2_Competition_Pop_Up {
vc.modalPresentationStyle = .overCurrentContext
present(vc, animated: true, completion: nil)
} else {
print("error creating P2_Competion_Pop_Up")
然而,当我运行这个函数时,弹出窗口直到整个函数(F)执行之后才会出现。为什么会这样?如何让函数(F)在弹出窗口出现时暂停,并在弹出窗口关闭后恢复?将其包装为异步调用:
DispatchQueue.main.async {
if let vc = self.storyboard?.instantiateViewController(withIdentifier: "P2CompetitionPopUpId") as? P2_Competition_Pop_Up {
vc.modalPresentationStyle = .overCurrentContext
self.present(vc, animated: true, completion: nil)
} else {
print("error creating P2_Competion_Pop_Up")
}
显示整个函数,以便更好地了解如何调用它。当另一个弹出窗口关闭时,将调用该函数。我认为这里的周边代码无关紧要。这与弹出窗口有特别的关系吗?延迟打开弹出窗口是一件很奇怪的事情。代码是从主队列调用的吗?不确定主队列是什么。以前发生过这样的情况:主视图控制器加载,运行加载代码,按下按钮,弹出窗口打开,按下按钮,弹出窗口关闭,主视图中的一个功能(在弹出窗口关闭时)开始运行,运行中途发现上面的代码,不运行它,但是完成函数的其余部分,然后运行它。希望这有帮助。这似乎没有改变任何事情。或者一开始它给出了两个关于内隐自我的错误信息。当我在“故事板”和“现在”之前加上“自我”时,它们就消失了。