我将此设计与View Controller和静态Table View Controller相结合。我尝试在顶部使用View Controller,在底部使用嵌入式表View Controller,但我无法弄清楚如何将数据同时传递给两个VC。
实施此设计的最佳做法是什么?
答案 0 :(得分:2)
您应该在ViewController中使用container view
:
这会自动创建一个关系segue:
最后,您可以通过prepareForSegue
访问嵌入式ViewControllers:
class MyMainViewController {
var embeddedVC1: MyEmbeddedViewController1!
var embeddedVC2: MyEmbeddedViewController2!
var embeddedVC3: MyEmbeddedViewController3!
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "Embedded1" {
self.embeddedVC1 = segue.destinationViewController as? MyEmbeddedViewController1
} else if segue.identifier == "Embedded2" {
self.embeddedVC2 = segue.destinationViewController as? MyEmbeddedViewController2
} else if segue.identifier == "Embedded3" {
self.embeddedVC3 = segue.destinationViewController as? MyEmbeddedViewController3
}
}
}
由于我们现在将嵌入式视图控制器实例存储在View Controller的属性中,因此我们可以将数据发送到任何其他功能中的嵌入式视图控制器。
然后发回数据,需要通过protocols进行委派。