получить активную раскадровку

Я использую приведенный ниже код, чтобы проверить, вошел ли пользователь в систему или вышел из нее, и он работает нормально. Но поскольку я получаю раскадровку по имени, я всегда отправляю пользователя на контроллер представления iPhone «в» или «вне». Это сработает, если я получу активную раскадровку. Как я могу исправить код?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    BOOL user = ...;
    NSString *segue = user ? @"in" : @"out";
    UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil];
    UIViewController *viewController = [storyBoard instantiateViewControllerWithIdentifier:segue];
    [self.window setRootViewController:viewController];

    return YES;
}

person lolol    schedule 30.08.2012    source источник


Ответы (1)


Если все, что вам нужно сделать, это получить viewController из другой раскадровки в зависимости от того, работает ли ваше приложение на iPad или на iPhone, вы можете сделать это с помощью оператора if:

NSString *storyboardName;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    storyboardName = @"iPad";
} else {
    storyboardName = @"iPhone";
}
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];

Если вам действительно нужно получить «активную» раскадровку независимо от ситуации, этот предыдущий ответ может вам помочь:

UIStoryboard: как правильно получить активную раскадровку?

person jonkroll    schedule 30.08.2012