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

问题描述 投票:0回答:1

在花了几个小时试图修复我的应用中的一个bug之后,我在这里向你求助,能够继续。下面是我的案例(我会尽量简短)。

1- 我做了一个小型的问答应用,我从Open Trivia网站的API中获取了20个问题。第一张图是玩家填写名字的地方。在这个viewController中,我调用GetAPIINfo类从api中获取数据,并将其加载到我的全局变量中

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

3-一旦20个问题全部问完(每个选手10个),屏幕上就会提示 "游戏结束"(图3)。

4- 我想做的是,一旦 "重新比赛 "警报控制器按钮被按下,就重新开始比赛。当它被按下时,我再次调用API并加载新的20个问题集。在图4中,你可以看到我为了重新加载我的QuizViewController所做的事情(在这之前还有其他的事情)。

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

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

所以我在这里,请你们与我分享你们的智慧和知识,以解决这个问题。提前感谢您的建议。

我已经尝试了几个选项,比如 这个这个以及许多其他的问题,但至今没有成功。

TL;DR:我做了一个从API加载20道题的测验应用,我想用一套新的20道题重新加载我的视图,但我仍然看到并播放第一套20道题,即使我加载了一套新的问题,但显然它们没有被存储。您好,请问。

Image 1Image 2Image 3Image 4Image 5Image 6

ios swift viewcontroller reload
1个回答
0
投票

当你点击重新匹配后,API调用将被触发。在你向用户展示新的问题集之前,你必须等待这个API调用完成。否则,你会显示旧的数据。

© www.soinside.com 2019 - 2024. All rights reserved.