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?
I am not aware of any automatic selection of storyboards based on their filename suffix. You can use
userInterfaceIdiomto select for iPad vs iPhone: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