在我的主控制器中,我有多个标签,我还有七个视图,每个视图我需要将一个变量传递给主变量并填充其中一个标签。现在我的问题是,当我发送一个变量并填充一个标签,然后我转到另一个页面并尝试发送一个变量,它按照预期填充一个单独的标签,但它也删除另一个的文本标签。这就是我一直在做的事情:
此代码位于其中一个辅助视图(不是带有标签的视图)
上var cpu: String = ""
@IBAction func intel8350k(_ sender: UIButton) {
cpu = "Intel Core i3 8350k"
if cpu != "" {
performSegue(withIdentifier: "seuge", sender: self)
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
var mainController = segue.destination as! ViewController
mainController.cpuString = cpu
}
在带有标签的主视图上:
var cpuString = ""
@IBOutlet weak var cpuLabel: UILabel!
cpuLabel.text = cpuString
对于其他视图,我想从其中发送数据几乎相同,只是替换了变量(例如cpuString是coolString)。
答案 0 :(得分:3)
以下是在视图控制器之间传递数据的所有方法:
答案 1 :(得分:0)
在目前的情况下,我认为您可以简单地使用全局变量来保存您想要在不同页面/控制器中传递的多个值。
创建一个名为" Global.swift"
的新文件struct Global {
static var cpu = ""
static var memory = ""
}
因此,在许多控制器中,您可以轻松地使用它来存储和获取如下数据。
// set the value
Global.cpu = "20.0"
Global.memory = "0.4"
// get value
print(Global.cpu)
请注意,每次运行应用程序时都会重置此变量。