1

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

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

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

任何意见,将不胜感激。谢谢。

4

2 回答 2

2

您不能在视图控制器之间连接 IBOutlets。您需要在代码中执行此操作。你必须通过 childViewController 链从第一个控制器到最后一个 - 如果我正确理解你的结构,从第一个视图控制器:

    LastController *last =  ((UIViewController *)self.childViewControllers[0]).childViewControllers[0];
    last.delegate = self;
于 2013-03-23T03:08:07.807 回答
0

我问了一个类似的问题Interface Builder 将不允许连接到自定义 UIView 类?我最终打开了苹果的一个错误。在 Apple 进行了几次后续查询后,我还没有听到任何解决方案。

于 2013-03-23T03:07:42.043 回答