在一個tabbarController中,該如何整合 來自多個storyboard的controller頁面呢?
為什麼會有多個storyboard呢? 多人開發的 工程中,根據不同的功能業務模塊,可以使用 多個 storyboard, 每個storyboard完成自己模塊的controller或其他視圖的編寫: 最後寫完之後,只需要先找到對應的storyboard,再 在該storyboard中找到你所需的controllers即可:
那麼如何整合3個/或多個storyboard的controllers頁面到一個tabbar上面呢?
直接上代碼,慢慢解釋 :
1.首先創建一個類,繼承自
UITabBarController
// // TabBarController.h // Aiyu // // Created by http://blog.csdn.net/yangbingbinga on 14/10/24. // Copyright (c) 2014年 http://blog.csdn.net/yangbingbinga. All rights reserved. // #import2.實現文件:@interface TabBarController : UITabBarController @end
// // TabBarController.m // Aiyu // // Created by http://blog.csdn.net/yangbingbinga on 14/10/24. // Copyright (c) 2014年 http://blog.csdn.net/yangbingbinga. All rights reserved. // #import TabBarController.h @interface TabBarController () @end @implementation TabBarController - (void)viewDidLoad { [super viewDidLoad]; NSMutableArray *vcs=[NSMutableArray arrayWithCapacity:3];//創建一個數組來保存controller對象 UIStoryboard *main=[UIStoryboard storyboardWithName:@Main bundle:[NSBundle mainBundle]];/首先找到對應的storyboard UIStoryboard *main1=[UIStoryboard storyboardWithName:@Main1 bundle:[NSBundle mainBundle]]; UIStoryboard *main2=[UIStoryboard storyboardWithName:@Main2 bundle:[NSBundle mainBundle]]; UIViewController *vc1=[main instantiateViewControllerWithIdentifier:@xiaoenai];//根據storyboard和controller的storeId找到控制器 UIViewController *vc2=[main1 instantiateViewControllerWithIdentifier:@xinqing]; UIViewController *vc3=[main2 instantiateViewControllerWithIdentifier:@miyu]; [vcs addObject:vc1]; [vcs addObject:vc2]; [vcs addObject:vc3]; [self setViewControllers:vcs animated:NO];//用當前的viewController數組替換原本的tabbarControlle的 viewControllers數組 } @end當然,使用 這些語句之前,需要給ViewController設置標識符:
見下圖: