无法在库中使用xib文件

时间:2010-05-09 09:39:50

标签: objective-c uiviewcontroller bundle

我在使用库和包含xib文件时遇到了一些麻烦。让我先解释一下我的情况。我有一个运行良好的项目。现在我需要将我的项目的一部分作为另一个客户的库,这些客户想要使用他的应用程序中的某些功能。我在that强烈推荐的文章的帮助下创建了一个库。

我的客户应该能够像这样初始化主视图控制器:

LibraryMainViewController *lmvc = [[LibraryMainViewController alloc] initWithNibName:@"LibraryMainViewController.xib" bundle:foo];

当我尝试以模态方式呈现该视图控制器时,这肯定会导致错误。我不确定我必须在这里使用什么捆绑包。我试过像

这样的东西
[NSBundle bundleForClass:[SomeClassInTheLibrary class]];

但这并没有解决问题。

如果有人能告诉我如何在这种情况下实际使用xib文件,我会很高兴。

感谢
-f

更新

好的,我知道我错了。只是为了澄清:我需要的是库,标题和其他资源,对吧?是否有某种最佳实践来创建和运送上述所有部分的“特征”?

2 个答案:

答案 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];