如何从另一个容器视图访问容器视图?
问题描述:
在我的代码中,我目前有一个嵌入故事板参考的容器视图。我引用的故事板包含一个视图控制器,其中包含两个容器视图。如何从另一个容器视图访问容器视图?
在我与容器视图视图控制器,我访问我的容器视图的视图控制器,像这样:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if segue.identifier == "showMetric" {
guard let metricChildViewController = segue.destinationViewController as? MetricChildViewController else { return }
var delegate: NewMetricDelegate!
let type = MetricsType.watts
let activityDelegate = NewActivityMetricDelegate(data: self.dataSet.dailySummary)
activityDelegate.dailySummaryPresentationDelegate = metricChildViewController
delegate = activityDelegate
metricChildViewController.metricDelegate = delegate
metricChildViewController.configure(type)
//I want to gain access to the table view controller
}
}
这里我创建MetricChildViewController,是嵌入在我的容器视图控制器的一个实例视图。就像我之前说过的,MetricChildViewController包含两个容器视图。我试图配置它的表视图控制器。
我想要做的是在我的视图控制器中的prepareForSegue方法中包含一个prepareForSegue,以访问我的容器视图的viewController的容器视图,如果有意义的话。
这似乎不是最好的方式去实现它,所以我想知道我应该如何去做这件事。
答
MetricChildViewController需要对其他容器有强引用。更简单的方法是将MetricChildViewController作为子视图控制器添加,而不是通过storyboard嵌入它