Selecting different storyboards based on device type
ios, iphone, uistoryboard
Solution
I am not aware of any automatic selection of storyboards based on their filename suffix. You can use `userInterfaceIdiom` to select for iPad vs iPhone:
if ([[UIDevice currentDevice] userInterfaceIdiom] ==UIUserInterfaceIdiomPad) {
UIStoryboard *storyboard =
[UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
} else {
[UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
}
But if you are doing this to start up with a specifc view controller, all you need to do is drag the 'start' arrow to your preferred view controller in the storyboard
Or - select the view controller in the storyboard, go to the attributes instpector and tick `isInitialViewController`
Problem
I have a universal app in which I'm loading my main storyboard manually in `application:didFinishLaunchingWithOptions`. I have 2 storyboards for iPhone and iPad which have the `~iPhone` and `~iPad` suffixes. I'm loading my storyboard using: ``` UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; self.initialViewController = [storyboard instantiateInitialViewController]; ``` This prints `Unknown class ViewController in Interface Builder file.` to the console, so apparently it's not loading the correct storyboard. However, when I use `[UIStoryboard storyboardWithName:@"MainStoryboard~iPhone" bundle:nil];` it works fine, but of course will work only for iPhone. What am I missing? How can I use the name suffixes to automatically select the correct storyboard?