代码之家  ›  专栏  ›  技术社区  ›  wazawoo

在watchOS上基于页面的界面中,如何在多个界面控制器之间共享变量

  •  3
  • wazawoo  · 技术社区  · 7 年前

    对于我的用例,我无法强制用户使用其他接口控制器之一(通过启动segue),因此这些解决方案将不适用于我。我需要能够更改任一控制器中的某些变量,并访问任一控制器中的这些变量。

    我尝试直接在界面控制器中设置一个当前不可见的变量:

    InterfaceController2().variable = false
    

    但是,这并没有起作用(正如预期的那样),因为这并没有访问该接口控制器的当前实例化实例。

    我正在考虑某种全局变量的情况,或者在UserDefaults中存储首选项,但我觉得一定有更好的方法。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Dávid Pásztor    7 年前

    InterfaceControllers 类/静态属性。

    class CommonClass {
        static var mySingleton = true
    }
    

    然后从您的 InterfaceController 是这样的: CommonClass.mySingleton = false .

    退房 this 有关单身汉的更多详细信息,请参阅文章。

        2
  •  1
  •   crgt    7 年前

    Alt:你可以创建一个共享实例来存储你的值,你的控制器可以从那里更新/检索值。