ios - 创建一个带有 Storyboard的自定义 cocoa pod

标签 ios objective-c xcode cocoapods

我正在创建一个 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,也请告诉我。

最佳答案

有两点需要牢记。

  1. 您通过预定义的包添加您的 pod 资源,例如

    s.resources = ["Resources/Pod.bundle"]
    

在这种情况下,您的包的内容将被复制到您的 xcode 项目中,而无需任何“进一步处理”。这意味着 Storyboard或 xib 文件将不会被编译并且不会在您的项目中可用。

  1. 您可以明确提及您的 Storyboard/nib 文件,例如

    s.resources = ["Resources/**/*.storyboard"]
    

在这种情况下, Storyboard将被编译并在您的项目中可用。这样做的缺点(在撰写本文时)是您不能使用本地化的 Storyboard,因为所有 Storyboard都将在包的根位置进行处理和复制。因此不同.lproj文件夹中的同名 Storyboard将被覆盖。

关于ios - 创建一个带有 Storyboard的自定义 cocoa pod ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23292306/

相关文章:

ios - swift : CABasicAnimation Issue

iphone - NavigationBar 图层渐变效果不佳

iphone - iphone中的休息网络服务

ios - 推送 View Controller 不显示从 Storyboard添加的元素

ios - 为 iOS 设备开发应用程序的先决条件存在很大的困惑

iphone - 如何在基于导航的 iOS 应用程序中访问比当前 View 上一级的 View ?

ios - Device Farm 在 iOS 上将 "extra data"的 zip 存档的内容放在哪里?

iphone - 对核心数据对象进行分组

iphone - 有谁知道如何通过 URL 架构在 Apple map 上放置图钉

ios - 从 xcodeproj 文件中删除构建配置和方案的脚本?