我目前正在重构几个共享一些 IBOutlet
和 IBAction
方法的 View Controller 。我将 socket 声明和 IBAction
方法移动到一个父类(super class)中,将它们从子类中删除。
现在,当我打开 Interface Builder 时,我发现我看不到父类(super class)中声明的导出或操作。连接仍然存在,因为我在重构之前将它们连接起来,但它们是灰色的。 (重要的是要注意连接也可以工作,因为我的 Action 是在按下按钮时触发的,并且我的 socket 已正确修改。)
问题是,如何让界面生成器识别父类(super class)的导出?这可能吗?如果不可能,你们都有什么建议?
(只是为了好玩,这是我的父类(super class)头文件:)
@interface TFMainViewController : UIViewController {
UIImageView *logoImage, *thinkfunImage;
UIButton *buyFullButton;
}
@property (nonatomic, retain) IBOutlet UIImageView *logoImage, *thinkfunImage;
@property (nonatomic, retain) IBOutlet UIButton *buyFullButton;
-(IBAction) buyFullVersion;
@end
编辑:如果有人想知道,我正在使用 Xcode 和 IB 3.2.5,以及 iOS 4.2 SDK。
最佳答案
直到大约一个小时前,我才意识到甚至可以连接到界面生成器中的父类(super class)。由于这是我能找到的关于如何执行此操作的唯一问题,因此即使这个问题很旧,我也会添加我的答案。我的回答是关于 Xcode 4,而不是 Xcode 3。
据我所知,您无法使用助理编辑器连接到父类(super class)中的导出,但您可以通过单击 IB 中的“文件所有者”来连接。这应该显示 Utilities->Connections Inspector 中的所有 socket 。然后,您可以按住 Ctrl 键并单击检查器中的导出(单击“+”号),并将其拖到您在 IB 中的 View 中。
关于ios - 如何访问父类(super class)中声明的 IBOutlets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4431881/