在我的代码中,我目前有一个嵌入故事板引用的容器视图。我引用的这个故事板包含一个视图控制器,其中包含两个容器视图。
在带有容器视图的视图控制器中,我可以像这样访问容器视图的视图控制器:
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的容器视图,如果这是有道理的。
这似乎不是最好的解决方法,所以我想知道我应该怎么做。
答案 0 :(得分:0)
MetricChildViewController需要对其他容器有强引用。更简单的方法是将MetricChildViewController添加为子视图控制器,而不是通过故事板嵌入它