ios - 如何将数据从多个 View 传递到一个 View ?

标签 ios swift variables view

在我的主 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 之间传递数据的所有方式:

  1. 执行转场时
  2. 在您的代码中以编程方式触发转换
  3. 通过应用的状态
  4. 使用单例
  5. 使用应用委托(delegate)
  6. 将委托(delegate)分配给 View Controller
  7. 通过 unwind segues
  8. 直接引用 View Controller
  9. 使用用户默认设置
  10. 通过通知

关于ios - 如何将数据从多个 View 传递到一个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47935256/

相关文章:

ios - 为什么 UIViewController 会留在内存中

swift - 如何在 Sprite Kit 中使用 SKAction 永远重复缩放对象

php - 将静态变量设置为 null 后检查其是否为 Null

ios - 当一个点旋转一定角度时,我想找到 CGPoint

ios - Swift - 关闭并再次打开 View 后数组总是重置

ios - 如何将 UILabel 放在 SKSpriteNode 后面

swift - 如何在 swift 4 中打开 subview 之前删除键盘?

iOS : Other alternative to instance variable?

java - 如何在Camunda-BPM中设置全局流程变量?

ios - 如何在 Tableviewcontroller 中显示搜索结果?