我有一个标准的扩展UIViewController (称为ParentViewController,或PVC),并希望有一个由ChildViewController或CVC驱动的容器或子视图。
我可以通过编程的方式看到,在PVC中,我可以调用addChild:CVC和管理调用,如didMoveToParentViewController等。但是,我希望有一种方法可以使用Interface Builder来实现这一点。
所以我布置了一个PVC的实例,然后将一个ContainerView拖到PVC的视图上,这将创建一个到子窗口的分段。在该窗口中,我将类类型指定为ChildViewController。到目前为止,这看起来很棒,但是我如何从PVC中以编程方式引用它?让我们尝试通常的方法:在PVC类扩展中,我声明:
@property (nonatomic, strong) IBOutlet ChildViewController* cvc;当我切换到IB,突出显示PVC实例,并选择connections检查器时,我看到了我的cvc属性,但我无法将它连接到我的containerView实例(即使它的类类型设置正确)。它允许我拖动(绘制线),但不允许我实际连接它。为什么??
我在想,这对于IB来说是不可能的,但也许我看错了?
我已经阅读了Apple's docs on child views,如果我不能让IB做我想做的事情,我准备以编程的方式来做这件事。
发布于 2013-02-22 01:29:56
cvc是PVC的子视图控制器,因此您可以使用childViewControllers属性获取对它的引用,这是在代码中完成的,而不是在IB中连接插座。在PVC的viewDidLoad方法中,执行以下操作:
self.cvc = (ChildViewController *)self.childViewControllers[0];Xcode不允许你在两个不同的控制器之间连接插座,所以即使cvc被嵌入为一个子视图控制器,它仍然是一个不同的视图控制器。
https://stackoverflow.com/questions/15008289
复制相似问题