在IB中,无法将IBOutlet委托连接到另一个视图控制器?

时间:2013-03-23 02:06:45

标签: ios xcode delegates interface-builder storyboard

我有一个视图控制器,它的视图之一是一个容器视图(在IB故事板中),它嵌入了一个表视图控制器,而后者又有一个嵌入另一个视图控制器的容器视图。在最后一个视图控制器中,我将具有弱合成委托属性的委托协议设置为IBOutlet。第一个视图控制器是我想要从最后一个接收委托方法,我添加了协议< ...>它。

问题是我在故事板(或其他方面)中没有找到方法将最后一个视图控制器的IBOutlet委托链接到遵循协议的第一个视图控制器,以便最后一个可以发送第一个消息。我以为我可以拖放(使用控制键),但我找到的只是目的地上的segue选项。即使代理出现在插座连接窗口中,它似乎也不会连接到我项目中的任何视图控制器。

任何视图控制器都不能成为另一个协议的委托吗? IB可以链接吗?如果我不能用IB做,我不知道如何让另一个VC成为上游代表。

任何建议都将不胜感激。感谢。

2 个答案:

答案 0 :(得分:2)

您无法在视图控制器之间连接IBOutlet。你需要在代码中完成它。你必须通过childViewController链从第一个控制器到最后一个 - 如果我从第一个视图控制器正确理解你的结构:

    LastController *last =  ((UIViewController *)self.childViewControllers[0]).childViewControllers[0];
    last.delegate = self;

答案 1 :(得分:0)

我问了一个类似的问题Interface Builder won't allow connections to custom UIView class?我最终揭开了Apple的一个错误。经过Apple的一些跟进查询后,我还没有听到任何解决方案。