简体   繁体   中英

Instantiating storyboard programmatically in appdelegate

I decided to use different storyboards for ios6 and and ios7 and so I need to instantiate storyboards in code. I have this method in the app delegate´s - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

but nothing happens, it always just instantiate the storyboard named iPadStoryboard when run on the iPad simulator, I have deleted the Main interface´s from the info.plist. Any idea what´s happening here?

- (void)loadStoryboards
{
    CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;

    UIStoryboard *mainStoryboard = nil;
    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0"))

        NSLog(@"1");
        if (iOSDeviceScreenSize.height == 480)
        {
            mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone-ios5" bundle:nil];
        } else {
            NSLog(@"loading iPad storyboard");
            mainStoryboard = [UIStoryboard storyboardWithName:@"iPadStoryboardOS6" bundle:nil];
        }

    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))

        NSLog(@"2");
        if (iOSDeviceScreenSize.height == 480)
        {

            mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
        } else {
            mainStoryboard = [UIStoryboard storyboardWithName:@"iPadStoryboard" bundle:nil];
        }


    self.initialViewController = [mainStoryboard instantiateInitialViewController];
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.rootViewController = self.initialViewController;
    [self.window makeKeyAndVisible];
}

Be careful how you check for iPad. 480px screen height doesn't cover iPhone5. Use:

if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM