我有一个 View Controller ,它的 View 之一是一个容器 View (在 IB Storyboard中),它嵌入了一个 TableView Controller ,而该 View Controller 又具有一个容器 View ,该容器 View 嵌入了另一个 View Controller 。在最后一个 View Controller 中,我设置了一个委托(delegate)协议(protocol),它具有一个弱综合委托(delegate)属性作为 IBOutlet。第一个 View Controller 是我想从最后一个 View Controller 接收委托(delegate)方法的对象,我向它添加了协议(protocol) <...>。
问题是我在 Storyboard (或其他方式)中没有想出一种方法将最后一个 View Controller 的 IBOutlet 委托(delegate)链接到遵循协议(protocol)的第一个 View Controller ,以便最后一个可以发送第一条消息。我以为我可以拖放(使用控制键)但我发现的只是目标上的 segue 选项。似乎即使委托(delegate)出现在导出连接窗口中,它也不会连接到我项目中的任何 View Controller 。
任何 View Controller 都不能成为另一个协议(protocol)的委托(delegate)吗?并且可以在IB中链接?如果我不能用 IB 做到这一点,我不知道如何让另一个 VC 成为上游的委托(delegate)。
如有任何建议,我们将不胜感激。谢谢。
最佳答案
您不能在 View Controller 之间连接 IBOutlets。您需要在代码中执行此操作。您必须通过 childViewController 链才能从第一个 Controller 到最后一个 Controller ——如果我正确理解您的结构,从第一个 View Controller 开始:
LastController *last = ((UIViewController *)self.childViewControllers[0]).childViewControllers[0];
last.delegate = self;
关于ios - 在 IB 中,无法将 IBOutlet 委托(delegate)连接到另一个 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582613/