用XIB1加载自定义的UIView使用IB视图控制器的看法(Load custom UIView w

2019-08-02 06:35发布

我有一个自定义UIViewMyCustomUIView这是使用接口生成器生成)。 我想将这个自定义视图MyViewController的观点,这也是使用IB设计。 我已经放在一个UIView作为一个子视图MyViewController的厦门国际银行,并设置它的类MyCustomUIView 。 问题是,当我运行的代码,只出现一个空白视图。 (当我实例MyCustomUIView在码时,它显示良好)。

我只有重写initWithFrame:方法通过以下方式MyCustomUIView.m

- (id)initWithFrame:(CGRect)frame
{
    [[NSBundle mainBundle] loadNibNamed:@"MyCustomUIView" owner:self options:nil];
    self = self.view;
    return self;
}

我应该怎么做才能使视图负载正常吗? 应该如何initWithCoder:是什么样子?

Answer 1:

你是对的。 IB使用的initWithCoder。 应的initWithCoder看起来非常相似,你的其他初始化方法:

- (id)initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {
        // CUSTOM INITIALIZATION HERE
    }
    return self;
}

一旦您在IB分配你的类,你不需要,除非我误解你打算从包实例化。



Answer 2:

不要放任何东西在IB视图控制器的视图部分。 相反,对于在IB以包含视图笔尖的名称视图控制器设置的笔尖名称。 在含有该视图的笔尖,该文件的所有者设置为视图控制器类和其挂钩view属性到视图。

其结果将是,当视图控制器被实例化,如果从笔尖实例化(这还没有被证明是到底发生了什么事情发生,但我们只能说这是),它会发现笔尖并加载从视图它。

基本规则是,它没有什么区别,其中一个视图控制器从何而来,它会经过寻找其以相同的顺序查看相同的步骤,正如我在书中解释:

http://www.apeth.com/iOSBook/ch19.html#_view_controller_and_view_creation

在这个网络直播:

http://www.youtube.com/watch?v=zIufcKpDIRo



文章来源: Load custom UIView with XIB from a View Controller's view using IB