我在使用库和包含xib文件时遇到了一些麻烦。让我先解释一下我的情况。我有一个运行良好的项目。现在我需要将我的项目的一部分作为另一个客户的库,这些客户想要使用他的应用程序中的某些功能。我在that强烈推荐的文章的帮助下创建了一个库。
我的客户应该能够像这样初始化主视图控制器:
LibraryMainViewController *lmvc = [[LibraryMainViewController alloc] initWithNibName:@"LibraryMainViewController.xib" bundle:foo];
当我尝试以模态方式呈现该视图控制器时,这肯定会导致错误。我不确定我必须在这里使用什么捆绑包。我试过像
这样的东西[NSBundle bundleForClass:[SomeClassInTheLibrary class]];
但这并没有解决问题。
如果有人能告诉我如何在这种情况下实际使用xib文件,我会很高兴。
感谢
-f
更新
好的,我知道我错了。只是为了澄清:我需要的是库,标题和其他资源,对吧?是否有某种最佳实践来创建和运送上述所有部分的“特征”?
答案 0 :(得分:6)
静态库不能包含图形,声音,xib甚至标题。只有目标代码。即使您将xib添加到Copy Bundle Resources,它们也不会成为目标文件的一部分。不幸的是,您无法在iPhone上使用动态库或框架。有关如何创建单独资产包的建议,请参阅my answer here。您也可以单独向客户发送xib文件,但如果将来更改,他们必须手动更换它们。
答案 1 :(得分:0)
尝试不添加扩展名到XIB文件。这就是我通常这样做的方式。我也不确定是否必须将XIB编译为NIB ..
NSBundle *bundle = [NSBundle bundleForClass:[SomeClassInTheLibrary class]];
LibraryMainViewController *lmvc = [[LibraryMainViewController alloc] initWithNibName:@"LibraryMainViewController" bundle:bundle];