2012-08-30 6 views
0

Я использую следующий код, чтобы проверить, был ли пользователь зарегистрирован или вышел из системы, и он работает нормально. Но поскольку я получаю раскадровку по имени, я всегда отправляю пользователя на 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; 
} 

ответ

1

Если все, что вы хотите сделать, это получить ViewController из другого раскадровки в зависимости от того, работает ли приложение на IPad против iPhone с, вы могли бы сделать это с помощью, если заявление:

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

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

UIStoryboard: What's the Correct Way to Get the Active Storyboard?

Смежные вопросы