为什么不能将xib文件作为子视图添加到主xib?

问题描述 投票:-1回答:1

我有一个主要的xib文件,并想向其中添加/重用subview xib文件(例如android studios fragments)。我只测试了带有粉红色背景色的简单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文件在以常规方式使用时都可以独立工作。让我知道您是否想知道其他有用的方法。

enter image description here

为了说明,我已附上图片。

  1. 文件名。这是我在nibWithNibName:@"SecondView"

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

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

我有一个主要的xib文件,想向其中添加/重用subview xib文件(例如android studios片段)。我只测试了一个带有粉红色背景色的简单xib文件,它使用...

objective-c xcode xib uicontainerview
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.