gpt4 book ai didi

swift - 如何在 watchOS 上基于分页的界面中的多个界面 Controller 之间共享变量

转载 作者:可可西里 更新时间:2023-11-01 01:18:06 24 4
gpt4 key购买 nike

我有多个界面 Controller ,它们都以基于分页的格式同时打开。我需要在这些接口(interface) Controller 之间共享信息。

对于我的用例,我无法强制用户使用其他界面 Controller 之一(通过启动 segue),因此这些解决方案对我不起作用。我需要能够在任一 Controller 中更改一些变量,并在任一 Controller 中访问这些变量。

我试过直接在界面 Controller 中设置一个当前不可见的变量:

InterfaceController2().variable = false

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

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

最佳答案

您可以使用单例。创建单例的最简单方法是将要在 InterfaceControllers 之间共享的变量设为类/静态属性。

你可以这样创建它:

class CommonClass {
static var mySingleton = true
}

然后像这样从您的 InterfaceController 访问它:CommonClass.mySingleton = false

使用单例时应谨慎,因为它们可以从您的代码的任何位置访问,因此它们可能被滥用为充当全局变量,这可能有其缺陷。

查看 this有关单例的更多详细信息的文章。

关于swift - 如何在 watchOS 上基于分页的界面中的多个界面 Controller 之间共享变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45339394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com