无法从另一个xib中的xib加载自定义视图

use*_*114 6 objective-c interface-builder xib ios loadnibnamed

道歉,因为我看到人们之前已经问过这样的问题了.但是,按照说明我没有太多运气.我有兴趣使用xib文件创建自定义视图,并在另一个视图控制器的xib文件中重用它.

现有职位:

在另一个xib中使用xib对象

如何一起使用xib和UIView子类?

我已经:

  • 创建了一个自定义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];
Run Code Online (Sandbox Code Playgroud)

不幸的是,这导致了以下错误:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: 
'[<UIView 0x548ff00> setValue:forUndefinedKey:]:
Run Code Online (Sandbox Code Playgroud)

我认为这可能是因为我没有将CustomView.xib中的顶级视图设置为CustomView类.然后我将其更改为CustomView,然后事情进入无限递归.这是有道理的,因为它只是一遍又一遍地重新加载.

不确定我之前的帖子中遗漏了什么,但我很感激任何指导!谢谢!

rej*_*sss 1

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: 
'[<UIView 0x548ff00> setValue:forUndefinedKey:]:
Run Code Online (Sandbox Code Playgroud)

出现上述情况的原因error通常是由于 中的连接失败Interface Builder,即UIViewController对象与实现类中相应对象的连接失败。请检查您的所有连接Interface Builder。还要验证文件中的文件所有者xib

我希望这能解决您的问题。