我有一个名为VCA的ViewController,其中将添加一个子视图VCB。此VCB是一个xib生成的文件,它允许用户点击几个按钮,要求更具体的用户输入。我遇到的问题是确定如何将用户选择的值传递回VCA。任何帮助都会很棒
答案 0 :(得分:4)
最灵活的方法是创建viewControllerA将采用的@protocol
,向viewControllerB添加委托,并在初始化viewControllerB时,在表单中执行以下操作:
viewControllerB.delegate = viewControllerA
在viewControllerB中,调用该协议:
self.delegate.doSomething()
通过使用protocol
,您可以在不将两个类绑在一起的情况下传递数据;在创建viewControllerB之后,有一些好的位置来设置委托,例如在创建之后或之前的segue之前。
答案 1 :(得分:0)
您可以轻松创建单例以在View控制器之间共享数据。幸运的是,它在Swift中非常简单。
像这样:
class MySingleton() {
static let sharedData = MySingleton()
var aVariable: Int = 4
init() {}
}
然后您可以使用以下任意位置调用单身人士:
let ms = MySingleton.sharedData
并使用:
调用属性 var newVar = ms.aVariable