从框架加载 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 文件的主要内容,如果未能解决你的问题,请参考以下文章