2015-09-01 41 views
0

我的應用程序中有很多故事板。之前我的應用不是基於UITabBar的應用,但現在我決定採用更多UITabBar的方式。現在我想添加我的故事板到我的UITabBarController。我打開了一個故事板並將其嵌入到UITabBarController中,但現在我不知道如何將其他故事板的第一個UIViewControllers添加到我的Tabbar中。我沒有任何tabBarController地產等將新的StoryBoard添加到UITabbarController

任何想法如何,我可以添加不同的故事板,以一個UITabBarController

回答

0

如果你不想將所有在一個故事板,你應該參照標籤欄控制器並以編程方式添加每個故事板的初始視圖控制器。

0

我想我的第一個問題/關注將是爲什麼你有這麼多的故事板。爲什麼不把所有的視圖控制器放在一個故事板上?如果您將所有視圖控制器放在同一個故事板上,那麼將它們連接到UITabBarController是一件簡單的事情 - 根據需要,從UITabBarController控制+拖動連接作爲許多視圖控制器。

如果出於某種原因需要您將視圖控制器分佈在多個故事板中,那麼您應該可以通過以下方式以編程方式加載它們。在的UITabBarController的子類:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIStoryboard *storyboard1 = [UIStoryboard storyboardWithName:@"YourStoryBoardHNameHere1" bundle:nil]; 
    UIViewController *vc1 = [storyboard1 instantiateViewControllerWithIdentifier:@"YourVCNameHere1"]; 
    UIStoryboard *storyboard2 = [UIStoryboard storyboardWithName:@"YourStoryBoardHNameHere2" bundle:nil]; 
    UIViewController *vc2 = [storyboard2 instantiateViewControllerWithIdentifier:@"YourVCNameHere2"]; 
    self.viewControllers = @[vc1,vc2]; 
} 
0

斯威夫特3 N8P的回答是:使用多個故事板實現TabBarController。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    // Override point for customization after application launch. 

    let tabBar = UITabBarController() 
    tabBar.viewControllers = self.getArrayOfViewControllers() 
    self.customiseTabItems(tabBar: tabBar.tabBar) 
    // set tabBar as root 

    self.window?.rootViewController = tabBar 
    self.window?.makeKeyAndVisible() 
    return true 
} 

see example

相關問題