更改视图控制器时标签不断重置
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。
我对 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。