繁体   English   中英

如何从xib加载视图

[英]How to load view from xib

我有一个ViewController,比如VC1,我需要以编程方式加载一个子视图,例如View1。

我有一个名为View1.xib的xib文件,其文件所有者是View1。

谁能告诉我如何加载View1?

我尝试了以下方法:

在VC1中,我打电话

View1 view1 = [[View1 alloc] init];
[[NSBundle mainBundle] loadNibNamed:@"View1" owner:view1 options:nil];
[self.view addSubview:view1];

但是,事实证明,view1对象和从NSBundle调用加载的对象不是同一个。


更新:

在View1.xib文件中,我有一些绑定到View1类的IBOutLet,因此我无法将文件所有者更改为VC1。

如果您只是加载一个UIView子类,它具有在xib中定义的布局,那么您不需要设置File的所有者。 相反,您应该将顶级对象的类更改为您的子类(View1)的类,然后使用

View1 *view1 = [[NSBundle mainBundle] loadNibNamed:@"View1" owner:nil options:nil].firstObject;

这是怎么做的:

NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"View1" owner:self options:nil];
View1 *view1 = [xib objectAtIndex:0];
[self addSubview:view1];

注意:

在界面构建器中构建View1.xib视图时,保留默认File's Owner并将视图类设置为View1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM