在我的主 Controller 中,我有多个标签,还有七个 View ,对于每个 View ,我需要将一个变量传递给主 Controller 并填充其中一个标签。现在我的问题是,当我发送一个变量并填充一个标签然后我转到另一个页面并尝试从该页面发送一个变量时,它会按预期填充一个单独的标签,但它也会从另一个标签中删除文本标签。这是我一直在做的事情:
此代码位于次要 View 之一(不是带有标签的 View )
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
对于其他 View ,除了变量被替换(例如 cpuString 是 coolerString)之外,我想从它发送数据几乎相同。
最佳答案
以下是您可以在 View Controller 之间传递数据的所有方式:
- 执行转场时
- 在您的代码中以编程方式触发转换
- 通过应用的状态
- 使用单例
- 使用应用委托(delegate)
- 将委托(delegate)分配给 View Controller
- 通过 unwind segues
- 直接引用 View Controller
- 使用用户默认设置
- 通过通知
关于ios - 如何将数据从多个 View 传递到一个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47935256/