我有一个视图控制器,它的视图之一是一个容器视图(在IB故事板中),它嵌入了一个表视图控制器,而后者又有一个嵌入另一个视图控制器的容器视图。在最后一个视图控制器中,我将具有弱合成委托属性的委托协议设置为IBOutlet。第一个视图控制器是我想要从最后一个接收委托方法,我添加了协议< ...>它。
问题是我在故事板(或其他方面)中没有找到方法将最后一个视图控制器的IBOutlet委托链接到遵循协议的第一个视图控制器,以便最后一个可以发送第一个消息。我以为我可以拖放(使用控制键),但我找到的只是目的地上的segue选项。即使代理出现在插座连接窗口中,它似乎也不会连接到我项目中的任何视图控制器。
任何视图控制器都不能成为另一个协议的委托吗? IB可以链接吗?如果我不能用IB做,我不知道如何让另一个VC成为上游代表。
任何建议都将不胜感激。感谢。
答案 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的一些跟进查询后,我还没有听到任何解决方案。