如何从IOS应用程序中的自定义捆绑加载故事板文件?

时间:2013-03-02 19:35:50

标签: xcode storyboard bundle

我有一个我正在修改的ios应用程序,因此它可以简单地插入一系列其他应用程序作为静态库。但是,我还需要拥有所有相应的资源,因此我创建了一个自定义包以包含这些资源。该软件包包括所有标签栏图像,可本地化的字符串,默认图像,以及最重要的是此问题的故事板文件。当我运行应用程序时,它无法在自定义捆绑包中找到故事板文件。

我的项目布局如下:嗯......好吧,似乎我不能发布图像,直到我的声望得分增加,而且因为我是第一次定时...我会尽力描述相反。

静态库项目作为子项目拖入主项目中。静态子项目包括2个目标,库生成libOMPhotoGalleryLibrary.a文件,libraryResources生成OMPhotoGalleryLibraryResources.bundle文件。资源的Build Phases的Copy Bundle Resources部分包括(以及一堆图像和字符串文件):

  • MainStoryboard_iPad.storyboard in OMPhotoGalleryLibraryResources /(本地化).lproj

  • 中的MainStoryboard_iPhone.storyboard OMPhotGalleryLibraryResources /(定位).LPROJ

然后,主项目在“链接的框架和库”部分中包含子项目的静态.a文件,并且自定义捆绑包包含在其复制捆绑包资源中。

当我运行项目时,我收到消息: 无法在捆绑NSBundle中找到名为“MainStoryboard_iPhone”的故事板

好的,这并非完全出乎意料,因为我需要弄清楚如何告诉应用程序查看自定义捆绑包。

作为调试练习,我(暂时)将主项目中的引用直接添加到storyboard文件中,并且可以使一切工作正常。所以,我知道静态库工作正常,并且部署了bundle,并且可以部署和访问图像和可本地化的字符串。因此,在删除主项目中的临时引用后,运行时无法再找到故事板文件。

我尝试将主项目的信息部分中的故事板文件名调整为以下各项无效:     OMPhotoGalleryLibraryResources.bundle / MainStoryboard_iPhone     OMPhotoGalleryLibraryResources.bundle / EN / MainStoryboard_iPhone     OMPhotoGalleryLibraryResources.bundle / en.lproj / MainStoryboard_iPhone

我还在应用程序删除主项目时尝试了几种程序化方法,但也没有运气。所以,我不知道如何告诉应用程序在OMPhotoGalleryLibraryResources.bundle中查找storyboard文件。一旦故事板加载,我就可以成功读取此捆绑包中的所有其他文件。

1 个答案:

答案 0 :(得分:1)

更新03/03/2013:解决了它。我是在正确的轨道上,但我从原始项目带来的文件位于本地化文件夹en.lproj中。但是,我没有将它们本地化为新的子项目。当我将文件从en.lproj文件夹中拉出并进入根资源文件夹,然后将INFO引用更改为OMPhotoGalleryLibraryResources.bundle / MainStoryboard时,它可以正常工作。