爲您的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