Tim
Tim

Reputation: 14446

Extracting nibs/xibs from storyboards (iOS)

I have created a simple project with a storyboard, and now realize that they don't support iOS 4.x and that I would like users with these devices to be able to download my app. The app is just a flipside view controller, and is fairly simple but if there's a way to just extract the XIBs from the storyboard I'd much prefer to do that than recreate it.

tl;dr: getting .xibs out of a .storyboard?

Upvotes: 19

Views: 15383

Answers (5)

seo
seo

Reputation: 1967

As a few others have suggested, your best bet is to clone the views from storyboard into an XIB.

enter image description here

Upvotes: 5

Sparq
Sparq

Reputation: 823

Xib files cannot be extracted from the storyboard but you can instantiate UIViewControllers out of the storyboard by instantiating your storyboard into a UIStoryboard Object and getting the UIViewController via its identifier, here's how I do it:

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:
                            @"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];

    UIViewController *myController = [storyboard instantiateViewControllerWithIdentifier:@"myId"];

hope this helps.

Upvotes: 20

Tim
Tim

Reputation: 14446

I found that the simplest method was to copy and paste the items out of the storyboard, one view at a time, and recreate the view controllers for each one.

However, for anybody who does this, note that you have to make a xib for MainWindow in addition to all of your other XIBs, and hook it up accordingly, including setting up the window and app delegate. Storyboards handle all of this for you, so when you try to avoid them, you have a lot of manual setting up that creating non-storyboard projects from the get-go handles for you. Don't do what I did, and try to make your root controller your main view controller, because it will go nuts saying things about how UIApplication isn't key-value compliant for individual properties of your XIB.

Upvotes: 11

Jamie
Jamie

Reputation: 5112

You may not be able to extract the .xibs from the storyboard, but try this. Have your .xib based project open and create the empty .xib files for your views and also have the storyboard project open at the same time. Select all the UI elements in your storyboards scene and simply drag and drop them over to the .xib based project. I have done this the other way around (moving from .xib to storyboard) with no problems.

Upvotes: 1

Robin Summerhill
Robin Summerhill

Reputation: 13675

It's not possible to get xib files. Your storyboard is compiled to nib files and packaged into a storyboardc file within your app bundle.

To locate the nib files select your built executable in Finder and right-click 'Show package contents'. Navigate to the en.lproj directory and find the storyboard.storyboardc file. Right-click 'Show package contents' again on the storyboard file and you will find your nibs. They will not be much use to you though because they are compiled binary nibs.

Upvotes: 1

Related Questions