0

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

var level: String = ("easy")

然后就可以访问那个变量了InterfaceController2

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

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

4

1 回答 1

0

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

你可能会错误地解决这个问题。从您的名称和值的声音来看,您似乎在视图控制器中为应用程序持有状态值。如果是这种情况,我会坚持更多的 MVC 设计,并将它们保存在一个或多个状态类中,这些类可以传递或者可以从可能需要它们的各种视图控制器访问。

于 2017-06-10T23:12:13.520 回答