我创建了一个Objective-c类“customTable.h”子类化UIView。
然后我在XIB中创建了一个自定义视图。我去了身份检查员,在自定义类下,我选择了我创建的类的名称(customTable)作为文件的所有者。 在xib的customTable视图中,我添加了几个UILabel和一个子视图。对于子视图,我选择了它并进入自定义类并选择了另一个自定义类'menuTable'。
在customTable.h文件中,我将来自XIB的menuTable链接为IBOutlet,因为我希望能够在视图的初始化中对插座进行一些配置。
我在customTable.m文件中的:
- (id)init
{
if(self = [super init])
{
[self initialize];
}
return self;
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self initialize];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
if(self = [super initWithCoder:aDecoder])
{
[self initialize];
}
return self;
}
- (void)initialize
{
/*some special configuration code for menuTable
is here */
}
在Storyboard中,我在ViewController的视图中添加了一个子视图,然后告诉storyboard我希望子视图使用自定义类“customTable”。在viewcontroller的.h文件中,我将此视图链接为IBOutlet。
@property (weak, nonatomic) IBOutlet customTable *cView;
当我在模拟器中运行时,子视图不会显示在viewcontroller中。我在customTable.m文件中添加了一些断点,并调用了initialize方法。那为什么不出现呢?
答案 0 :(得分:1)
我的建议是在你的故事板中,拖放主视图顶部的“容器视图”。这将创建一个容器,其中包含与故事板中新视图控制器的连接。然后,选择新的视图控制器,并在身份检查器中将自定义视图设置为CustomTable。顺便说一下,自上课以来,你的班级CustomTable大写。
答案 1 :(得分:0)
我想我明白了。发生这种情况的原因是我应该在创建类时选择“使用XIB作为用户界面”。