如何访问超类中声明的IBOutlet?

Sam*_*hie 15 xcode interface-builder iboutlet ibaction ios

我目前正在重构一些共享一些IBOutlets和IBAction方法的视图控制器.我将插座声明和IBAction方法移动到一个超类中,从子类中删除它们.

现在,当我打开Interface Builder时,我发现我无法看到超类中声明的出口或动作.这些连接仍然存在,因为我在重构之前将它们连接起来,但是它们已经变灰了.(重要的是要注意连接也是工作,因为我的操作在按下按钮时触发,我的插座被正确修改.)

问题是,如何让界面构建器识别来自超类的出口?这是可能的,如果没有,你们都推荐什么?

(只是为了好玩,这是我的超类头文件:)

@interface TFMainViewController : UIViewController {
    UIImageView *logoImage, *thinkfunImage;
    UIButton *buyFullButton;        
}

@property (nonatomic, retain) IBOutlet UIImageView *logoImage, *thinkfunImage;
@property (nonatomic, retain) IBOutlet UIButton *buyFullButton;

-(IBAction) buyFullVersion;

@end
Run Code Online (Sandbox Code Playgroud)

编辑:如果有人想知道,我正在使用Xcode和IB 3.2.5,iOS 4.2 SDK.

ars*_*ius 21

直到大约一小时前,我才意识到甚至可以连接到界面构建器中的超类.由于这是我能找到的关于如何做到的唯一问题,我会添加我的答案,即使这个问题已经过时了.我的答案是关于Xcode 4,而不是Xcode 3.

据我所知,您无法使用助理编辑器连接到超类中的插座,但您可以通过单击IB中的"文件所有者"来实现.这应该显示Utilities-> Connections Inspector中的所有出口.然后,您可以按Ctrl +单击检查器中的插座(单击"+"符号),然后将其拖到IB中的视图中.


Sos*_*ily 14

IBOutlet问题的解决方案是将类类型更改为身份检查器中的基类

在此输入图像描述

使用Control +拖放连接

在此输入图像描述

把它改回子类

在此输入图像描述

这适合我

顺便说一句:我使用的是Xcode 6