访问容器视图控制器

时间:2013-03-29 14:44:25

标签: ios cocoa-touch

我有一个简单的ViewController,它有一个带TableViewController的容器视图。 在ViewController我从外部API加载数据和数据的一部分,我需要传入容器中的TableViewController。

有什么方法可以做到吗? 谢谢!

1 个答案:

答案 0 :(得分:13)

容器视图中包含的控制器可以由父控制器中的self.childViewControllers访问。如果你只有一个,那么它将在self.childViewControllers [0]。


注意:关于RD的优秀技术在下面的评论中解释;这是一个典型的例子,测试和工作:这只是在整个场景的VC中。只需单击segue本身(即连接箭头中间的小符号)即可设置文本标识符。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
    if ([segue.identifier isEqualToString:@"containerLogin"])
        self.vcLogin = (LoginVC *)segue.destinationViewController;

    if ([segue.identifier isEqualToString:@"containerStartNew"])
        self.vcStartNew = (StartNewVC *)segue.destinationViewController;

    }

以下是如何在Swift中执行此操作:(您必须小心使用unwrappers)

override func prepareForSegue(segue:(UIStoryboardSegue!), sender:AnyObject!)
    {
    if (segue.identifier == "feedContainer")
        {
        feed = segue!.destinationViewController as! Feed
        feed.someFunction()
        }
    }