在多个控制器之间传递/更新变量的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在多个控制器之间传递/更新变量的值相关的知识,希望对你有一定的参考价值。

我正在努力工作。所以在我的项目中,我使用了7个控制器和一个变量,我在所有7个控制器中使用了它。我的问题是,我将如何更改我的变量(比如第一个控制器)的值,以便它自动在所有控制器上更新。

执行此操作的正确方法是什么?我将如何进行?

答案

使用singleton共享实例创建全局变量。 Herer is the link, its a step by step tutorial

另一答案

使用Singleton类

class GlobalObjects {
    static let shared = GlobalObjects()
    fileprivate init() {
    }  
    var MyDetail : User!
}

使用:

print(GlobalObjects.shared.MyDetail)
  1. 使用单例类变量更新viewWillAppear方法中的值。

要么

  1. 使用NotificationCenter,在所有7个控制器上添加观察器并发布通知以更新值
另一答案

您可以使用变量的didSet可能性。像这样的东西

var yourVariable: Any? = nil {
    didSet {
          yourActionToUpdateUI()
    }
}

以上是关于在多个控制器之间传递/更新变量的值的主要内容,如果未能解决你的问题,请参考以下文章

如何在活动和片段之间传递对象

如何在导航抽屉活动模板中的片段之间传递字符串变量

在具有委托的视图控制器之间传递多个值

在C代码中将结构体变量作为参数传递效率忒低

js和jsp之间相互传值

在多个视图控制器之间传递浮点数