非常抱歉,因为我看到有人之前提出过这样的问题。然而,按照说明我并没有取得很好的效果。我想创建一个自定义视图,使用xib文件,并在另一个视图控制器的xib文件中重复使用它。
现有的帖子:
我已经完成了以下工作:
- 创建了一个自定义的xib文件(我们称其为CustomView.xib),以及相应的.h和.m类文件
- 将xib文件的文件所有者设置为CustomView
- 创建了一个顶层UIView,其中包含其他视图作为子视图(例如UILabel等)
- 请注意,这里还有一个子UIView,它也是用代码编写的自定义视图
- 连接了IBOutlets
- 创建了ViewController.xib文件
- 添加了一个UIView,将类设置为CustomView,并进行了连接
这导致在构建应用程序时出现空白视图。
然后我尝试了上面的一个帖子中所说的方法,即覆盖CustomView的initWithDecoder方法,并添加以下内容:
NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil];
UIView *mainView = [subviewArray objectAtIndex:0];
[self addSubview:mainView];
很抱歉,这导致了以下错误:
Terminating app due to uncaught exception 'NSUnknownKeyException', reason:
'[<UIView 0x548ff00> setValue:forUndefinedKey:]:
我认为这可能是因为我没有在CustomView.xib中将顶级视图设置为CustomView类。所以我把它改成了CustomView,然后出现了无限递归的情况。这很有道理,因为它只是一遍又一遍地重新加载自己。
不确定我错过了之前的哪些内容,但我会感激任何指导!谢谢!