Ios 如何将数据(分数)从第一个viewcontroller保存到第二个viewcontroller?
我正在为学校的一个大项目为ios创建一个测验应用程序,但这是我第一次用xcode和swift制作一些东西。我遇到了一个自己似乎无法解决的问题。目前,我正试图在多个ViewController之间保持分数;我试过很多不同的东西,但还是不起作用。 正如我所说,我是xcode的noob,实际上是所有的编码 首先,我有分数的代码:Ios 如何将数据(分数)从第一个viewcontroller保存到第二个viewcontroller?,ios,swift,uiviewcontroller,sigabrt,Ios,Swift,Uiviewcontroller,Sigabrt,我正在为学校的一个大项目为ios创建一个测验应用程序,但这是我第一次用xcode和swift制作一些东西。我遇到了一个自己似乎无法解决的问题。目前,我正试图在多个ViewController之间保持分数;我试过很多不同的东西,但还是不起作用。 正如我所说,我是xcode的noob,实际上是所有的编码 首先,我有分数的代码: @IBOutlet weak var scoreLabel: UILabel!
@IBOutlet weak var scoreLabel: UILabel!
var score = 0
在我的应用程序中,当有人回答正确的问题时,分数会得到1分(score+=1
)。在第一个主题的4个问题之后,将在不同的ViewController上显示不同主题的4个问题
这是我在第一个ViewController末尾的代码(MultipleChice 2是我的第二个vc):
我的第二个vc代码:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.destination is MultipleChoice2 {
let vc = segue.destination as? MultipleChoice2
vc?.score = score
}
}
var score = Int()
@IBOutlet weak var scoreLabel: UILabel?
override func viewDidLoad() {
super.viewDidLoad()
scoreLabel?.text = String(score)
}
我可能做错了,但我希望应用程序能将分数从我的第一个ViewController保存到我的第二个ViewController,这样,当某人在第一个vc中得了3分时,他在第二个vc中仍然得了3分
我尝试过的其他方法根本不起作用,但通过这段代码,我在类AppDelegate中单击将我发送到第二个viewcontroller的按钮后得到消息Thread 1:signal SIGABRT
老实说,我不知道如何将我的分数保存到下一个vc,如果有人能解决这个问题,那就太好了。检查所有插座是否都连接好。然后检查segue是否已连接 改变
var score = Int()
到
在secondVC中,然后重试。请尝试以下操作,如果您在使用时遇到任何问题,请告诉我: 首先,将secondVC中分数变量的声明更改为
var score : Int = 0
然后在“准备分段”方法中,您可以尝试以下方法:
首先从故事板中设置segue标识符,因为它更便于使用:
然后你可以通过以下方式检查我们的状况是否正常
if segue.identifier == "showSecondVC" {
let vc = segue.destination as! MultipleChoice2
vc.score = score
}
还可以使用断点检查是否所有操作都正常执行
另外,您还可以使用以下代码设置标签文本:
scoreLabel?.text = "\(score)"
var score=Int()
更改为var score:Int?
override func prepare(对于segue:UIStoryboardSegue,发送方:Any?){
如果segue.identifier==“showSecondVC”{
设vc=segue.destination为!MultipleChoice2
分数
}
}
确保您的插座已连接到第二个VC上。
scoreLabel?.text = "\(score)"
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showSecondVC" {
let vc = segue.destination as! MultipleChoice2
vc.score? = score
}
}