【问题标题】:Why can't I add xib files as subViews to my main xib?为什么我不能将 xib 文件作为子视图添加到我的主 xib?
【发布时间】: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:]:该类不符合键值编码的键 activityIndi​​catorView。”

最后一部分:“activityIndi​​catorView”会根据我尝试加载的xib 文件而变化。有时它是“ViewingNumberBanner”或其他东西。

xib 文件比工作测试-xib 更复杂,所以显然我一定错过了一些东西。问题是我不知道从哪里开始。我可能应该提到,所有xib 文件在以常规方式使用时都可以自行工作。让我知道您是否想知道其他可以提供帮助的内容。

为了说明,我附上了一张图片。

  1. 文件名。这是我在nibWithNibName:@"SecondView"中使用的名字

  2. xib 没有与之关联的class。但如果我没记错的话,它似乎有很多 xib 文件的视图(见屏幕左侧)。

  3. 这有 class ColleagueTableViewController 与之关联。这是我要加载的xib。当我使用instantiateWithOwner时,我不知道这是否是index[0],我只是在猜测。我怎么确定?

【问题讨论】:

  • [NSObject setValue:forUndefinedKey:]NSObject 而不是 UIView 的事实导致了问题。您没有设置文件所有者的类,或者我不知道“MyCustomView”类是哪一个。
  • @Larme 感谢您帮助我。文件所有者设置为SecondViewController 类。抱歉,我没有收到您评论的最后一部分:“我永远不知道“MyCustomView”类是哪一个”。我不确定如何处理 NSObject 的事情。

标签: objective-c xcode xib uicontainerview


【解决方案1】:

从长远来看,这里有两个问题:

  • 任何人都不应该将视图控制器保存在 .xib 文件中。这就是 .storyboard 文件的用途。即使您不使用 segue,故事板也允许您通过标识符实例化视图控制器,而 .xib 文件无法做到这一点。还有很多其他好东西。

  • 如果您要从 .xib 文件加载视图层次结构,则视图应该是该 .xib 中唯一的内容。然后你只需在没有所有者的情况下加载它,拉出第一个视图,然后在你的界面中使用它。如果您要加载多个此类视图,请在每个 .xib 中使用一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    相关资源
    最近更新 更多