更改视图控制器时标签不断重置

Label keeps getting reset when changing View Controllers

我对 XCode 中的编程还很陌生,并且一直在创建一些小应用程序,让我总体上理解 XCode 和 Swift。目前我正在制作一个问题应用程序,它允许用户按下一个按钮,检查答案是否正确,并根据答案是否正确将视图更改为正确或不正确的视图之一。

这是故事板:Storyboard Layout

现在,不同视图之间的过渡很好,但是当我从不正确或正确的视图返回主视图时,标签将重置回情节提要中显示的原始标签。

我怎样才能做到当我从正确或不正确的视图变回主视图时,标签停留在移动视图之前显示的同一问题上。

这是我的代码:https://codedump.io/share/1EgsRsJOUUbY/1/first-app

任何帮助都会很棒!

~亚历克斯

解决方案

一个简单的解决方案是在您的代码中重写一个名为 viewDidLoad 的方法,并在那里设置您的 questionLabel 的文本。

override func viewDidLoad() {
    super.viewDidLoad()

    // You can use any index here. With little effort you can even randomize this.
    let exampleIndex = 0

    questionLabel.text = questions[exampleIndex]
}

说明

您原始代码的问题是您没有在主视图出现时以编程方式设置 questionLabel 的文本。通过仅在 nextQuestionButton IBaction 中设置文本,您的文本标签将仅在调用操作时发生变化(我认为这是通过按下下一个按钮触发的)。因此,您从情节提要中设置的文本已显示。

要快速回顾应用视图生命周期,您可以参考this link