понедельник, 18 ноября 2013 г.

iOS How to load another storyboard. Как загрузить другую Storyboard

Для экранов 3'5 и 4 дюйма можно использовать различные Storyboard так как это дает возможность удобно проектировать интерфейс под разные размеры экранов. Для этого необходимо создать еще одну Storyboard разработать в ней соответствующей интерфейс. В файла AppDelegate.m необходимо добавить соответствующий код в метод didFinishLaunchingWithOptions для загрузки необходимой нам Storyboard. В этом методе необходимо при запуске приложения на устройстве определить, какое устройство сейчас используется 3'5 или 4 дюйма (определяется это в зависимости от высоты экрана для 3'5 дюймового это 480 точек, а для 4 дюймового это 568 точек). Далее создаем UIStoryboard на основании соответствующего файла и создаем первый ViewController. После этого создаем окно и назначаем этому окну initial View Controller.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
 
    CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;
    UIViewController *initialViewController = nil;
    if (iOSDeviceScreenSize.height == 480) {
 
        UIStoryboard *iPhone35Storyboard = [UIStoryboard storyboardWithName:@"Storyboard-iphone35" bundle:nil];
 
        initialViewController = [iPhone35Storyboard instantiateInitialViewController];
 
    } else if (iOSDeviceScreenSize.height == 568) {
 
        UIStoryboard *iPhone4Storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
 
        initialViewController = [iPhone4Storyboard instantiateInitialViewController];
 
    }
 
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
 
    self.window.rootViewController = initialViewController;
 
    [self.window makeKeyAndVisible];
 
    return YES;
}