MAGNAWS MAGNAWS - 5 months ago 18
iOS Question

UIStoryboard: What's the Correct Way to Get the Active Storyboard?

I am currently furiously digging through all the docs, and haven't quite found what I'm looking for. I suspect it is a real d'oh! answer.

I simply need to find the active storyboard in the main bundle, and want to know the best way to do this.

This is so that I can use the

[UIStoryboard storyboardWithName:@"XXX" bundle:mainBundle]
to extract the running storyboard.

I know how to kludge it by switching on the idiom, but I feel that this is a...kludge.

What's a correct way of doing this?

UPDATE:

OK. I found it.

As usual, on Stack Overflow (the official Apple Documentation Site ;).

Here's the code I settled on:

UIStoryboard *st = [UIStoryboard storyboardWithName:[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"] bundle:[NSBundle mainBundle]];

Answer

OK. As my comment above indicates, I found the answer to the (badly phrased question):

I wanted to be able to get the main (not active) storyboard, as I'm not using multiple storyboards per incarnation. I'm using the standard model of 1 storyboard for iPhone, and 1 for iPad. I just wanted the cleanest way to get the storyboard, so that I could use it to generate a view controller.

I found the answer in this post on Stack Overflow, and implemented it with the following code:

UIStoryboard *st = [UIStoryboard storyboardWithName:[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"] bundle:[NSBundle mainBundle]];