[英]Assign a view controller to a custom .xib
我有一个自定义可重用的XIB,它已创建并为它分配了UIView的类子类。
这是initWithFrame:
-(instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if(self) {
self = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil] firstObject];
}
return self;
}
一切正常,我可以初始化此自定义.xib并将其添加到我的VC中:
BannerView *bannerView = [[BannerView alloc]init];
[_profileContentArea addSubview:bannerView];
虽然,我希望这个自定义.xib具有自己的VC,然后能够通过VC而不是上面的内容添加为子视图。 考虑到目前的现有设置,我该如何处理。
您的init方法是initWithFrame,因此您必须创建BannerView
BannerView *bannerView = [[BannerView alloc]initWithFrame:frame];
然后你可以添加到ViewController
-(instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if(self) {
self = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil] firstObject];
}
return self;
}
请注意初始化步骤
+alloc
:分配内存-init
:初始化必要的属性
调用alloc
并在init
或initWithFrame:
设置一些属性时,您已经获得了视图对象initWithFrame:
当你打电话时
self = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil] firstObject];
旧的视图对象消失了,因为您刚刚设置了一个来自xib的新视图对象
为什么不使用-[UIViewController initWithNibName:nibBundle:]您可以根据需要设置笔尖
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.