如何从另一个容器视图访问容器视图?

时间:2016-10-07 16:20:34

标签: ios swift xcode container-view

在我的代码中,我目前有一个嵌入故事板引用的容器视图。我引用的这个故事板包含一个视图控制器,其中包含两个容器视图。

在带有容器视图的视图控制器中,我可以像这样访问容器视图的视图控制器:

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的容器视图,如果这是有道理的。

这似乎不是最好的解决方法,所以我想知道我应该怎么做。

1 个答案:

答案 0 :(得分:0)

MetricChildViewController需要对其他容器有强引用。更简单的方法是将MetricChildViewController添加为子视图控制器,而不是通过故事板嵌入它