从框架加载 nib 文件

Posted

技术标签:

【中文标题】从框架加载 nib 文件【英文标题】:Loading nib file from framework 【发布时间】:2012-10-11 20:52:46 【问题描述】:

我有一个从 Interface builder 创建的 nib 文件,我已将其作为捆绑资源插入框架并添加到我的项目中。我正在尝试,但不确定如何为 ViewController 加载它。谁能分享关于如何从框架资源文件夹的主包中加载 nib 文件的任何想法?

谢谢。

【问题讨论】:

[bundleObj loadNibFile: externalNameTable: zone:] 你不需要这样做。 NSViewController 知道如何从包中加载 nib:***.com/a/9757633/50122 【参考方案1】:

好吧,在想了一会儿之后,我终于让它工作了。以下是我如何从外部框架加载 nib 文件的内容,将来可能会对某人有所帮助。

NSString *resourceBundlePath = [[NSBundle mainBundle] pathForResource:@"TheFrameworkName" ofType:@"framework"];

NSLog(@"the bundle: %@",resourceBundlePath);

NSBundle* languageBundle = [NSBundle bundleWithPath:resourceBundlePath];
[languageBundle load];

NSLog(@"The bundle desc: %@",[languageBundle description]);

self.scanManual = [[Scanner alloc] initWithNibName:@"Resources/Scanner" bundle:languageBundle];

由于我在最初的几次尝试中获得了(空)内容,因此通过保持 NSLog 加载检查包的一个好方法是。再次感谢 *** 社区

【讨论】:

【参考方案2】:

我不确定这是否适用于 xib,但这就是我从捆绑包中加载图像的方式,检查它是否适合您。

但请确保在添加文件夹时应单击第二个单选按钮,如图像。

imageArray = (NSMutableArray *)[[NSBundle mainBundle] pathsForResourcesOfType:@"jpg" inDirectory:@"Beauty Shots_iPad"];

【讨论】:

阿米特,我要添加我的框架两次,一次在框架中,另一次在捆绑包中,因此它可以作为资源的参考点。问题是,当我构建一个演示应用程序时,它从不从框架中获取资源,而是从 xyz.app 位置获取资源。我已经通过使用 [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@",[[NSBundle mainBundle] pathForResource:@"WhiteLabelLibrary.framework/Resources/star_empty" ofType:@ 成功使用了图像"png"]]]] 但是,不确定如何使用 nib 文件执行此操作。谢谢

以上是关于从框架加载 nib 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在框架内加载 `.xib` / `.nib` 文件?

从 NIB 加载 UIView - 帧大小错误

从 nib 文件加载

无法从主包中按名称加载 Nib 文件

从 nib 文件加载 UIView?

如何从 nib 文件加载 UITableViewCell 高度?