2012-03-13 4 views
2

Если я сожалею об одном в своем проекте iOS, я начал использовать раскадровки с самого начала. Теперь у меня есть все трудности, чтобы найти правильные ссылки., представляющий диспетчер modal view из делегата приложения с раскадровки

В этом конкретном случае я просто хочу отобразить контроллер модального вида сразу после того, как приложение завершило запуск из AppDelegate. Довольно легко, но я не могу сделать это прямо сейчас:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    AppStartViewController *appStartViewController = [[AppStartViewController alloc] init]; 
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:appStartViewController]; 
    [navController setModalPresentationStyle:UIModalPresentationFullScreen]; 

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 

    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"MyInitialViewController"]; 
    [vc presentModalViewController:navController animated:NO]; 

    // Override point for customization after application launch. 
    return YES; 
} 

Любые идеи, что пошло не так, или где моя ошибка в мышлении?

ответ

3

Я думаю, что vc пока нет. Сначала вам нужно представить контроллер просмотра vc.

self.window.rootViewController = vc;

[self.window makeKeyAndVisible];

Модальное контроллер представления может быть представлен только другой контроллер вида, который уже находится на представлении.

+0

Я думаю, что он находится на виду. Vc создается с помощью контроллера вида из раскадровки с идентификатором «MyInitialViewController». По крайней мере, это то, что я думаю. Изменение кода, как вы предполагали, приводит к тому, что контроллер начального представления будет отображаться как контроллер представления модели – MrBr

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