2014-07-05 33 views
0

我有四個應用程序,並希望將它們組合成一個應用程序。是否可以通過點擊按鈕來運行不同的iOS項目?

如果我添加這些項目到項目工作區 - 例如有項目A和項目B - 是否有可能點擊一個按鈕,去項目A的根控制器, 然後點擊另一個按鈕去項目B的根控制器?

如果可能,我該怎麼做?

+0

「轉到項目根控制器」是什麼意思? – vladof81

+0

按鈕單擊後轉到項目A的故事板並運行其根視圖控制器 – JennyProGram

+0

製作容器視圖控制器並將兩個應用程序的入口點添加到該容器。向容器視圖控制器視圖添加一個按鈕。添加一個加載入口點的動作。 – dasdom

回答

0

是可以點擊一個按鈕,去項目A的根 控制器,然後點擊另一個按鈕去項目B的根 控制器?

一種自然的方法是使用標籤欄控制器管理各種「根」視圖控制器。例如,您的應用程序委託可以以編程方式創建UITabBarController,然後使用每個故事板中的根視圖控制器加載它。它會去是這樣的:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    self.tabBarController = [[UITabBarController alloc] init]; 

    // Project 1 
    UIStoryboard *storyboard1 = [UIStoryboard storyboardWithName:@"Project1" bundle:nil]; 
    UIViewController *controller1 = [storyboard1 instantiateInitialViewController]; 

    // Project 2 
    UIStoryboard *storyboard2 = [UIStoryboard storyboardWithName:@"Project2" bundle:nil]; 
    UIViewController *controller2 = [storyboard1 instantiateInitialViewController]; 

    // Project 3 
    UIStoryboard *storyboard3 = [UIStoryboard storyboardWithName:@"Project3" bundle:nil]; 
    UIViewController *controller3 = [storyboard1 instantiateInitialViewController]; 

    // Project 4 
    UIStoryboard *storyboard4 = [UIStoryboard storyboardWithName:@"Project4" bundle:nil]; 
    UIViewController *controller4 = [storyboard1 instantiateInitialViewController]; 

    // Add the controllers to the tab controller 
    [self.tabBarController setViewControllers:@[controller1, controller2, controller3, controller4] 
            animated:NO]; 

    //...put any other app initialization stuff here... 

    return YES; 
} 

此時標籤欄將有四個按鈕,每一個「根」視圖控制器,你就可以隨意在它們之間進行切換。

我還沒有編譯上面的,但它應該足以讓你開始。當然,您必須理清各種視圖控制器可能對應用程序代理的任何依賴關係,等等。但這不應該太困難。您還應該確保每個視圖控制器都配置了選項卡欄項目,以便標籤欄控制器將知道在相應按鈕上使用的圖標和名稱。

相關問題