我们知道一个controller会自动绑定与它同名的xib文件,但是View不会,那么怎样将一个View与一个xib文件进行绑定呢?
首先,将xib文件的custom class 的类名改为需要绑定的View的名字
如图下
然后在View的 .m 文件中写如下代码:
- (instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
//加载xib文件
self = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil].firstObject;
}
return self;
}
注:如果xib文件名与View的文件名一样则可以使用NSStringFromClass([self class])(获取当前类名)
这样就将一个View与xib文件绑定了
强调:xib文件名不能是View,不然会报错:’NSInternalInconsistencyException’, reason: ‘-[UIViewController _loadViewFromNibNamed:bundle:] loaded the “View” nib but the view outlet was not set.’ 与系统的冲突