UIViewController中的自定义子视图未显示

时间:2013-11-07 23:08:11

标签: ios objective-c interface-builder xcode5 uistoryboard

我创建了一个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方法。那为什么不出现呢?

2 个答案:

答案 0 :(得分:1)

我的建议是在你的故事板中,拖放主视图顶部的“容器视图”。这将创建一个容器,其中包含与故事板中新视图控制器的连接。然后,选择新的视图控制器,并在身份检查器中将自定义视图设置为CustomTable。顺便说一下,自上课以来,你的班级CustomTable大写。

答案 1 :(得分:0)

我想我明白了。发生这种情况的原因是我应该在创建类时选择“使用XIB作为用户界面”。