1. 程式人生 > >用多個StoryBoard構建工程

用多個StoryBoard構建工程

一 重新建立Home、Search和About三個StoryBoard

圖例1

圖例2

圖例3

二 建立TabBarViewController類繼承於UITabBarController

- (void)viewDidLoad
{
    [super viewDidLoad];

    //第一個 首頁
    UINavigationController *homeNav = [[UIStoryboard storyboardWithName:@"Home" bundle:[NSBundle mainBundle]] instantiateInitialViewController];
    UITabBarItem *homeItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:0
]; homeNav.tabBarItem = homeItem; homeNav.title = @"首頁"; //第二個 主頁 UINavigationController *searchNav = [[UIStoryboard storyboardWithName:@"Search" bundle:[NSBundle mainBundle]] instantiateInitialViewController]; UITabBarItem *searchItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemSearch tag:0
]; searchNav.tabBarItem = searchItem; searchNav.title = @"搜尋"; //第三個 關於 UINavigationController *aboutNav = [[UIStoryboard storyboardWithName:@"About" bundle:[NSBundle mainBundle]] instantiateInitialViewController]; UITabBarItem *aboutItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemContacts tag:0
]; aboutNav.tabBarItem = aboutItem; aboutNav.title = @"關於"; // 將檢視控制器新增至陣列中 NSArray *viewControllers = @[homeNav,searchNav,aboutNav]; self.viewControllers = viewControllers; }

三 為每個Storyboard新增Storyboard Entry Point

執行工程時發現報錯那是因為沒有為每個Storyboard新增Storyboard Entry Point,按照下面的步驟操作即可。

圖例1

圖例2

四 從一個StoryBoard的某一個檢視push到另一個StoryBoard的某一個檢視

圖例6

- (IBAction)storyboardToAbout:(id)sender
{
    UIStoryboard *story = [UIStoryboard storyboardWithName:@"About" bundle:nil];
    AboutViewController *vc = [story instantiateViewControllerWithIdentifier:@"VC"];

    [self.navigationController pushViewController:vc animated:YES];
}

最終的效果圖
圖例7

五 參考