如何使用警报控制器按钮重新加载 viewController 内容,swift

How to reload viewController content using an alert controller button, swift

在花了几个小时试图修复我的应用程序中的错误后,我来这里向您寻求帮助并能够继续。这是我的案例(我会尽可能简短):

1- 我制作了一个小测验应用程序,我从 Open Trivia 网站的 API 中检索了 20 个问题。第一张图片是玩家填写名字的地方。正是在这个 viewController 中,我调用 GetAPIINFo class 从 api 获取数据并将其加载到我的全局变量

2- 游戏开始后,您可以看到 iPhone 屏幕上的内容与从 API 中检索到的内容相对应。这对应于另一个名为 "QuizViewController" 的视图控制器。见图 2

3- 一旦问完所有 20 个问题(每个玩家 10 个),屏幕上会出现 "game over" 屏幕提示(图 3)。

4- 我想要做的是在按下 "Rematch" 警报控制器按钮后重新开始比赛。按下时,我再次调用 API 并加载新的 20 个问题集。在图 4 中,您可以看到我尝试做什么(以及之前的其他内容)以重新加载我的 QuizViewController

5- 我可以开始新游戏,分数重置为零且玩家名称相同。此外,您可以在图 5 的控制台中看到我成功加载了一组新的 20 个问题。问题:游戏仍然显示第一组 20 个问题。基本上,即使我加载了 20 个新问题,我还是在玩同一套问题和答案。

6- 我检查了 QuizBrain 文件(其中存储了问题和答案的值)我的值 "quiz" 没有被新值覆盖(见图 6),即使我删除了每次我按下 "Rematch" 按钮时全局变量 "quiz"。

所以我在这里,请大家与我分享您的智慧和知识,以解决这个问题。预先感谢您的建议。

我已经尝试了几个选项,例如 this one, or this one,但到目前为止还没有成功。

TL;DR:我制作了一个从 API 加载 20 个问题的测验应用程序,我想用一组新的 20 个问题重新加载我的视图,但我仍然看到并玩第一组20 个问题,即使我加载了一组新问题,但显然它们没有被存储。你好。

点击重新匹配后,将触发 API 呼叫。在向用户显示一组新问题之前,您必须等待此 API 调用完成。否则,您将显示较旧的数据。