在两个接口控制器之间传递数据

Passing data between two Interface Controllers

我想在两个接口控制器之间传递一个字符串。在 InterfaceController1 我想创建一个像这样的变量:

var level: String = ("easy")

然后能够在 InterfaceController2 上访问该变量。

目前 Stack Overflow 上只有一个答案,但它是在 Swift 1 出来时创建的,我找不到任何最新答案。

我不想使用全局变量,因为我知道不推荐使用它们。

在不使用全局或单例(在本例中本质上是全局)的情况下实现此目的的最佳方法是使用委托模式。在 InterfaceController2 中创建一个类型为 InterfaceController1 的委托,并在显示 InterfaceController2 时设置它。然后,当您需要该值时,您可以调用 InterfaceController1Delegate.level 来访问该值。

虽然你可能错误地解决了这个问题。从你的名字和价值观的声音来看,你似乎在视图控制器中为应用程序保持状态值。如果是这样的话,我会坚持更多的 MVC 设计,并将它们保持在 class 或 class 状态,这些状态会被传递或可以从可能需要它们的各种视图控制器访问。