Kuk*_*won 10 xcode ios uistoryboard cocoapods swift
我正在尝试使用CocoaPods创建一个Pod,我想捆绑一个"演示"故事板,我可以从我的示例应用程序的主故事板中引用它.问题是当我这样做时Xcode给我以下编译器错误:
Did not find storyboard named "Demo" referenced from Main.storyboard
看到:
在我的Podspec中,我包括:
s.resource_bundles = {
'StoryboardAssets' => ['Pod/Assets/*.{storyboard,png}']
}
Run Code Online (Sandbox Code Playgroud)
您可以使用" 使用Pod Lib创建 "指南找到我创建的演示存储库,您可以在此处找到它:
https://github.com/Kukiwon/StoryboardDemo
我正在运行CocoaPods版本0.39.0.
那么从Pod中引用Storyboard的正确方法是什么?我错过了什么吗?
要使用cocoapods引用故事板,您应该在Bundle部分设置pod的bundle标识符,如下图所示:
在podspec文件中,您应该添加故事板的引用(作为资源而不是bundle)
s.resource = 'MyPod/MyStoryboardName.storyboard'
更新你的pod,如果你想我可以在github上传一个例子,一切都会正常工作.
希望有所帮助
动态框架中包含的文件嵌入到NSBundle应用程序中的不同文件中。为了更容易获取故事板,您可以在库中创建一个帮助器类:
public class StoryboardHelper: NSObject {
public static let helper = StoryboardHelper()
public lazy var storyboard: UIStoryboard! = UIStoryboard(name: "Main", bundle: NSBundle(forClass: StoryboardHelper.self))
public func rootController() -> UIViewController! {
return storyboard.instantiateInitialViewController()
}
}
Run Code Online (Sandbox Code Playgroud)
NSBundle(forClass: StoryboardHelper.self)将获得捆绑包StoryboardHelper。
这样,您的用户只需执行以下操作即可显示嵌入式故事板的根视图控制器:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window?.rootViewController = StoryboardHelper.helper.rootController()
window?.makeKeyAndVisible()
return true
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1957 次 |
| 最近记录: |