[英]Creating a custom cocoa pod with a storyboard in it
我正在創建一個pod,在資源包中我有一個故事板(本地化)。
當我嘗試實例化故事板時,發生了錯誤: 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
故事板可以首先包含在一個包中嗎?
我還沒有看過包含故事板的Pod的例子。 如果你知道任何分享他們的故事板的pod,也請告訴我。
要記住兩件事。
您可以通過預定義的捆綁包添加您的pod資源
s.resources = ["Resources/Pod.bundle"]
在這種情況下,您的包的內容將被復制到您的xcode項目,而無需任何“進一步處理”。 這意味着故事板或xib文件將不會被編譯,也不會在您的項目中可用。
你可以明確提到你的storyboard / nib文件
s.resources = ["Resources/**/*.storyboard"]
在這種情況下,故事板將被編譯並將在您的項目中可用。 這個(在撰寫本文時)的缺點是您無法使用本地化的故事板,因為所有故事板都將在您的捆綁包的根位置進行處理和復制。 因此,將覆蓋在不同.lproj
文件夾中具有相同名稱的故事板。
你想要resources
選項。 以下是一些包括他們的規格:
JCAutocompletingSearch/0.9.2/JCAutocompletingSearch.podspec
JCAutocompletingSearch/0.9.3/JCAutocompletingSearch.podspec
JCAutocompletingSearch/0.9.4/JCAutocompletingSearch.podspec
JCAutocompletingSearch/0.9.5/JCAutocompletingSearch.podspec
JCAutocompletingSearch/0.9.6/JCAutocompletingSearch.podspec
Keystone-Contacts-iOS/1.1.4/Keystone-Contacts-iOS.podspec
LumberjackConsole/2.0.0/LumberjackConsole.podspec
LumberjackConsole/2.0.1/LumberjackConsole.podspec
Mixpanel/2.1.0/Mixpanel.podspec
Mixpanel/2.2.0/Mixpanel.podspec
Mixpanel/2.2.1/Mixpanel.podspec
Mixpanel/2.2.2/Mixpanel.podspec
Mixpanel/2.2.3/Mixpanel.podspec
Mixpanel/2.3.0/Mixpanel.podspec
Mixpanel/2.3.1/Mixpanel.podspec
Mixpanel/2.3.2/Mixpanel.podspec
Mixpanel/2.3.4/Mixpanel.podspec
Mixpanel/2.3.5/Mixpanel.podspec
OpenBLE/1.0.0/OpenBLE.podspec
我目前在這里有同樣的問題。 雖然我沒有自己回答這個問題,但我還想提供最有可能在您的案例中有效的其他信息:
調用
NSString *path = [bundle pathForResource:@"MyStoryboard" ofType:@"storyboard"];
NSLog(@"path: %@",path);
將打印
/var/mobile/Containers/Bundle/Application/_identifier_/MyApp.app/MyBundle.bundle/Base.lproj/MyStoryboard.storyboard
即故事板本身被找到,但不能加載“正常方式”。
我通過使用此行代碼來解決我的問題
let bundle = Bundle(for: type(of: self))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.