【问题标题】:Passing/Updating value of variable across multiple controllers跨多个控制器传递/更新变量的值
【发布时间】:2018-06-09 18:50:18
【问题描述】:

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

执行此操作的正确方法是什么?我该怎么做??

【问题讨论】:

    标签: ios swift3 swift2 parameter-passing updating


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      使用单例类

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

      用途:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-09
          • 2019-08-28
          • 1970-01-01
          • 1970-01-01
          • 2015-12-18
          相关资源
          最近更新 更多