【问题标题】:Passing Data between Interface Controllers on Xcode 8.0 Swift 3.0在 Xcode 8.0 Swift 3.0 上的接口控制器之间传递数据
【发布时间】:2017-11-12 10:58:06
【问题描述】:
我想在两个接口控制器之间传递一个字符串。在 InterfaceController1 我想创建一个变量,如:
var level:String = ("easy")
然后能够访问 InterfaceController2 上的该变量。
我不想使用全局变量,因为我知道不推荐使用它们。
StackOverFlow 上有一个答案,但它是在 Swift 1 发布时创建的,我找不到任何最新的答案。
谢谢
【问题讨论】:
标签:
swift
xcode
swift3
apple-watch
wkinterfacecontroller
【解决方案1】:
您有多种选择来实现这一目标。
- 使用
pushController(withName:,context:) 并将level 设置为上下文输入参数,然后在InterfaceController2 的awake(withContext:) 中使用该变量。
- 如果您需要从多个类访问 InterfaceController2 的变量或者您不直接导航到 InterfaceController2,请使用单例(将变量声明为静态)。
如果您只需要从 InterfaceController1 设置该变量,并且直接从 InterfaceController1 呈现 InterfaceController2,则选项 1 是首选方法。