【问题标题】:How to reload viewController content using an alert controller button, swift如何使用警报控制器按钮快速重新加载 viewController 内容
【发布时间】:2020-08-27 05:38:26
【问题描述】:

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

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 文件(存储问题和答案的值)中检查了我的值“测验”没有被新值覆盖(参见图 6),即使我删除了全局变量“每次按“重新匹配”按钮时都会进行测验。

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

我已经尝试了几个选项,例如 this onethis one,其中还有许多迄今为止没有成功的选项。

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

【问题讨论】:

  • 您是否在等待 API 完成并返回一组新的问题和答案后才开始游戏?
  • 大家好。不,当我单击“重新匹配”时调用 GetApiInfo。为什么?
  • 是的,点击rematch后会触发API调用。但是,在向用户显示问题之前,您是否正在等待此 API 调用完成?如果没有,您将显示较旧的数据。
  • 你好星期六。实际上,在单击“重新匹配”按钮之前,我必须调用 API 以使用新的新变量重置所有全局变量。所以当游戏结束时,我调用 API 来重置所有内容并加载新数据,然后我重新加载视图控制器并解决了问题。感谢您的提示。
  • 没问题。我已将评论移至回答。如果有帮助,请标记为已接受。

标签: ios swift viewcontroller reload


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-10-19
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多