如何在ViewController和子视图ViewController之间传递数据

时间:2015-08-09 23:03:47

标签: ios swift

我有一个名为VCA的ViewController,其中将添加一个子视图VCB。此VCB是一个xib生成的文件,它允许用户点击几个按钮,要求更具体的用户输入。我遇到的问题是确定如何将用户选择的值传递回VCA。任何帮助都会很棒

2 个答案:

答案 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