0

我有一個應用程序,它具有UITabBarController,其中的一個選項卡已配置爲導航控制器。將視圖添加到啓動應用程序的導航控制器

基於某些邏輯,我需要在應用程序啓動時將不同的根視圖添加到選項卡中的導航控制器。

但是,這很容易在界面構建器中完成,因爲我需要弄清楚在啓動時需要附加哪個視圖,在這種情況下界面構建器對我來說沒有多大用處。

我猜我需要在我的應用程序委託類的applicationDidFinishLaunching方法中通過某種方式獲取我感興趣的選項卡並將視圖推送到它的導航控制器中執行此操作?

我怎麼會去嗎?

謝謝。

回答

0

所以我在我的applicationDidFinishLaunching方法所做的是:

// get the array of tabs 
NSArray *tabBarArray = tabBarController.viewControllers; 
// in my case the navigation controller I'm interested in is in the 4th tab 
UINavigationController *navigationController = [tabBarArray objectAtIndex:4]; 

if(someLogic == true) { 
    ViewController1 *viewController1 = [[viewController1 alloc] initWithNibName:@"View1" bundle:nil]; 
    [navigationController pushViewController:viewController1 animated:NO]; 
    [viewController1 release]; 
} 
else { 
    ViewController2 *viewController2 = [[viewController2 alloc] initWithNibName:@"View2" bundle:nil]; 
    [navigationController pushViewController:viewController2 animated:NO]; 
    [viewController2 release]; 
} 

一切運作良好。

0

你在正確的軌道上。在您的應用程序代理的applicationDidFinishLaunching方法中,您需要查看您的任何條件,並選擇正確的設置作爲UINavigationController的根視圖控制器。

我猜這是一個登錄屏幕或什麼?如果你有一個早期的會話緩存登錄,你不會再顯示它?是嗎?

如果您在應用程序委託中查看該方法,您會看到默認根視圖控制器正在實例化並推送到導航控制器中的位置。只需在if()語句中複製該代碼即可。我已經做到了,這很簡單。

相關問題