2014-10-31 3 views
0

Мое приложение показывает экран заставки, который при запуске приложения во время загрузки данных устанавливается как контроллер начального представления раскадровки. Когда его сделали я хочу а) отклонить экран заставки б) представить «реальный первоначальный контроллер представления»Как отключить заставку

Я думаю, что его комбинация из 3-х вопросов: - Как получить текущий контроллер корневого - Как чтобы создать представление, чтобы показать - Как представить представление

Вот моя попытка, которая не работает, контроллер отображения брызг остается. Просьба уточнить, что не так. Благодаря!

Я называю этот метод в конце способа загрузки данных из «не контроллер вида» кода

- (void) _showDailyPlan 
{ 
// to get the current root controller 
    UIWindow *window = [[UIApplication sharedApplication] keyWindow]; 
    [window.rootViewController dismissViewControllerAnimated:NO completion:nil]; 

// create view to show 
    UIStoryboard *storyboard = [HCAThemeManager getStoryboard]; 
    HCASegmentCollectionViewController *dailyPlan = (HCASegmentCollectionViewController*) [storyboard instantiateViewControllerWithIdentifier:@"DailyPlan"]; 

// present the view 
    [window.rootViewController.navigationController pushViewController:dailyPlan animated:YES]; 
} 

ответ

0

Вот решение, которое работает. Он будет работать и для других иерархий представлений, а также для случаев, когда при запуске приложения необходимо показать 2 разных представления. т.е. «FirstLogin» экран «UserNeedsSignUp» экран и т.д.

Показать ViewN контроллер при запуске вар isShowView1 определяет, что смотреть, чтобы показать

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
... 
    NSString *storyboardId = isShowView1 ? @"View1" : @"View2"; 
    self.window.rootViewController = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:storyboardId]; 
} 

Позже в жизни приложения в моем случае загрузки данных, и мне нужно показать «MainView»

-(void) dataLoadCompleted { 
... 

    [UIApplication sharedApplication].keyWindow.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"View2"]; 
} 
Смежные вопросы