为您的detailChartViewController创建一个var,然后直接设置它。您可以在您的prepareForSegue方法中分配var。当你创建一个容器视图时,你需要为嵌入式控制器设置它的标识符。然后您的prepareForSegue方法将会触发,这是您将该var分配给控制器的地方。如果你想从孩子访问你的父母,你可以在prepareForSegue函数中传递一个对你父母的引用,或者创建一个协议/委托来传递回(通常是首选)。
var detailFormViewController:DetailFormViewController? // Set the identifier for both of these in the identity inspector of these views in the storyboard
var detailViewController:DetailViewController?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "DetailView" {
self.detailViewController = segue.destinationViewController as! DetailViewController
// You can always pass the parent to the child like below although a delegate is a more preferred technique
self.detailViewController.parentViewController = self
} else if segue.identifier == "DetailFormViewController" {
self.detailFormViewController = segue.destinationViewController as! DetailFormViewController
}
}
func someFunction() {
// Now that you have a reference to your container view controllers you can access any of their objects directly from your parent view.
self.detailViewController.labelSomething.text = "Something"
self.detailFormViewController.labelSomethingElse.text = "Something else".
}
看看这个如何获得对你包含的视图控制器的引用:http://stackoverflow.com/questions/29582200/how-do-i-get-the-views-inside-a -container-in-swift/29582305#29582305 – ABakerSmith