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

时间:2017-06-10 18:08:14

标签: swift swift3 watchkit watch-os wkinterfacecontroller

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

var level: String = ("easy")

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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