Creating a custom cocoa pod with a storyboard in it
I am creating a pod, and in the resource bundle I have a storyboard (localised).
When I try to instantiate a storyboard, an error occurred:
Could not find a storyboard named 'MyStoryboard' in bundle NSBundle. The code look like this:
NSURL *bundleURL = [[NSBundle mainBundle] URLForResource:@"MyBundle" withExtension:@"bundle"]; NSBundle *bundle = [NSBundle bundleWithURL:bundleURL]; UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:bundle];
MyBundle structure looks like this:
- MyBundle.bundle - Base.lproj - MyStoryboard.storyboard - es.lproj - MyStoryboard.strings
Can storyboard can be included in a bundle in the first place?
I have not seen examples of Pod that includes storyboards. If you know of any pods that share their storyboard, let me know too.
4 Solutions Collect From Internet About “Creating a custom cocoa pod with a storyboard in it”
There are two things to keep in mind.
You add your pod resources via a predefined bundle like
s.resources = ["Resources/Pod.bundle"]
in this case the content of your bundle will be copied to your xcode project without any “further processing”. This means that storyboards or xib files will not be compiled and won’t be available in your project.
You can explicitly mention your storyboard/nib files like
s.resources = ["Resources/**/*.storyboard"]
In this case the storyboard will be compiled and will be available in your project. The downside of this (at the moment of this writing) is that you can not use localized storyboards, because all storyboards will be processed and copied at the root location of your bundle. So storyboards with the same name in different
.lproj folders will be overwritten.
You want the
resources option. Here are some specs that include theirs:
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
I currently have the same issue here. While not answering the question itself, I’d like to provide additional information that most likely is valid in your case, too:
NSString *path = [bundle pathForResource:@"MyStoryboard" ofType:@"storyboard"]; NSLog(@"path: %@",path);
i.e. the storyboard itself is found, but not loadable “the normal way”.
I solved my problem by using this line code to get bundle
let bundle = Bundle(for: type(of: self))
- UICollectionView autosize height
- How would I create a UIAlertView in Swift?
- Multistage animation using blocks
- Swift: determine what object called a function?
- Arabic TTF (TrueType font) in UIWebView iOS 4.2.1
- xcrun: error: active developer path (“/Applications/Xcode.app/Contents/Developer”) does not exist
- How to use marquee feature in Swift?
- ios7 images inUISegmentedControl not scaling
- iPhone Emoji Unicode Encoding UTF
- UIActivity activityViewController being presented modally on iPad instead of in popover
- Passing an int array of variable length as a function parameter in Objective C
- Can I use google drive sdk with authentication info from google sign-in sdk on iOS?
- NSUserDefaults losing its keys & values when phone is rebooted but not unlocked
- What is the best best way to disable cross fades on UICollectionView/UICollectionViewLayout rotates or bounds changes?
- How do you store a file locally using Apache Cordova 3.4.0