我有四个应用,希望将它们合并到一个应用中。
如果我将这些项目添加到项目工作区 - 例如项目A和项目B - 是否可以单击按钮并转到项目A的根控制器, 然后单击另一个按钮转到项目B的根控制器?
如果有可能,我该怎么做?
答案 0 :(得分: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;
}
此时标签栏将有四个按钮,每个“根”视图控制器一个按钮,您可以随意切换它们。
我没有编译上面的内容,但它应该足以让你入门。您当然必须解决各种视图控制器可能对应用程序委托等的任何依赖性。但这不应该太困难。您还应确保每个视图控制器都配置了一个标签栏项,以便标签栏控制器知道要在相应按钮上使用的图标和名称。