【发布时间】:2017-02-11 13:08:16
【问题描述】:
我有这个设计,它结合了视图控制器和静态表视图控制器。我尝试在顶部使用 View Controller 并在底部使用嵌入式表格 View Controller,但我无法弄清楚如何将数据同时传递给两个 VC。
实施此设计的最佳做法是什么?
【问题讨论】:
标签: ios swift xcode uiview storyboard
我有这个设计,它结合了视图控制器和静态表视图控制器。我尝试在顶部使用 View Controller 并在底部使用嵌入式表格 View Controller,但我无法弄清楚如何将数据同时传递给两个 VC。
实施此设计的最佳做法是什么?
【问题讨论】:
标签: ios swift xcode uiview storyboard
您应该在 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
}
}
}
由于我们现在将嵌入式视图控制器实例存储在视图控制器的属性中,因此我们可以在任何其他函数中将数据发送到嵌入式视图控制器。
但是,发回数据需要通过protocols 进行委托。
【讨论】: