2014-10-31 106 views
0

我的應用程序顯示啓動畫面視圖,在應用程序啓動時將數據加載爲故事板初始視圖控制器。當它的完成我想 一)駁回閃屏 b)當前的「真正的初始視圖控制器」如何關閉啓動畫面

我認爲它的3個問題組合: - 如何獲得當前根控制器 - 如何創建視圖 - 如何呈現視圖

這是我的嘗試,它不工作,splash視圖控制器保持。請澄清什麼是錯的。謝謝!

我請從「非視圖控制器」代碼

- (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控制器在發佈VAR 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"]; 
}