【发布时间】:2020-02-04 21:40:19
【问题描述】:
我有一个主要的xib 文件,并想向其中添加/重用subview xib 文件(如android studiosfragments)。我只测试了一个简单的带有粉红色背景的xib 文件,它使用以下代码工作:
UINib *nib = [UINib nibWithNibName:@"testXib" bundle:nil];
UIView *sub = [nib instantiateWithOwner:nil options:nil][0];
[containerOutlet addSubview:sub];
[NSLayoutConstraint activateConstraints:@[
[sub.leadingAnchor constraintEqualToAnchor:containerOutlet.leadingAnchor],
[sub.trailingAnchor constraintEqualToAnchor:containerOutlet.trailingAnchor],
[sub.topAnchor constraintEqualToAnchor:containerOutlet.topAnchor],
[sub.bottomAnchor constraintEqualToAnchor:containerOutlet.bottomAnchor]
]];
这在我的主要xib 中显示了我的彩色xib。但是,一旦我尝试添加任何现有的 xib 文件,应用程序就会崩溃并出现以下错误:
由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[ setValue:forUndefinedKey:]:该类不符合键值编码的键 activityIndicatorView。”
最后一部分:“activityIndicatorView”会根据我尝试加载的xib 文件而变化。有时它是“ViewingNumberBanner”或其他东西。
xib 文件比工作测试-xib 更复杂,所以显然我一定错过了一些东西。问题是我不知道从哪里开始。我可能应该提到,所有xib 文件在以常规方式使用时都可以自行工作。让我知道您是否想知道其他可以提供帮助的内容。
为了说明,我附上了一张图片。
文件名。这是我在
nibWithNibName:@"SecondView"中使用的名字此
xib没有与之关联的class。但如果我没记错的话,它似乎有很多xib文件的视图(见屏幕左侧)。这有
classColleagueTableViewController 与之关联。这是我要加载的xib。当我使用instantiateWithOwner时,我不知道这是否是index[0],我只是在猜测。我怎么确定?
【问题讨论】:
-
[NSObject setValue:forUndefinedKey:]是NSObject而不是UIView的事实导致了问题。您没有设置文件所有者的类,或者我不知道“MyCustomView”类是哪一个。 -
@Larme 感谢您帮助我。文件所有者设置为
SecondViewController类。抱歉,我没有收到您评论的最后一部分:“我永远不知道“MyCustomView”类是哪一个”。我不确定如何处理NSObject的事情。
标签: objective-c xcode xib uicontainerview