我正在创建一个 pod,并且在资源包中我有一个 Storyboard(本地化)。
当我尝试实例化 Storyboard时,发生了一个错误:Could not find a storyboard named 'MyStoryboard' in bundle NSBundle
。代码如下所示:
NSURL *bundleURL = [[NSBundle mainBundle] URLForResource:@"MyBundle" withExtension:@"bundle"];
NSBundle *bundle = [NSBundle bundleWithURL:bundleURL];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:bundle];
MyBundle 结构如下所示:
- MyBundle.bundle
- Base.lproj
- MyStoryboard.storyboard
- es.lproj
- MyStoryboard.strings
Storyboard可以首先包含在 bundle 中吗?
我还没有看到包含 Storyboard的 Pod 示例。如果您知道任何共享 Storyboard的 pod,也请告诉我。
最佳答案
有两点需要牢记。
您通过预定义的包添加您的 pod 资源,例如
s.resources = ["Resources/Pod.bundle"]
在这种情况下,您的包的内容将被复制到您的 xcode 项目中,而无需任何“进一步处理”。这意味着 Storyboard或 xib 文件将不会被编译并且不会在您的项目中可用。
您可以明确提及您的 Storyboard/nib 文件,例如
s.resources = ["Resources/**/*.storyboard"]
在这种情况下, Storyboard将被编译并在您的项目中可用。这样做的缺点(在撰写本文时)是您不能使用本地化的 Storyboard,因为所有 Storyboard都将在包的根位置进行处理和复制。因此不同.lproj
文件夹中的同名 Storyboard将被覆盖。
关于ios - 创建一个带有 Storyboard的自定义 cocoa pod ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23292306/