我使用Xcode 5中的故事板,几乎完善了我的第一个iOS应用程序作为单个视图。现在我想要包含一个带有相同视图的三个副本的标签栏。即将以完全相同的方式显示三个不同的数据集,可从选项卡中选择。
我正在努力进行这种转换。据我所知,我的所有模型和控制器代码都可以保持相同(除了获取每个模型的唯一数据)但是我是否修改了故事板或以编程方式进行了操作。
故事板方法似乎是错误的,因为每个视图都需要自己的定义,而它们应该共享相同的内容。代码方法更有意义,但我正在努力寻找所有部分以使其工作。在模拟器中启动时,我已经进行了几次操作,甚至无法显示标签视图。
我理解我现有的视图需要缩小才能适应,但我的自动布局正常工作,所以应该自己处理。
为了澄清,我从“单一视图”模板构建了应用程序,并且正在使用当前的故事板来启动和连接所有内容。
答案 0 :(得分:0)
根据我上面留下的评论,这是我采用的解决方案。
在app delegate的didFinishLaunchingWithOptions
方法内...
// Add extra tabs
UIViewController *vc1, *vc2, *vc3;
vc1 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"CBViewController"];
[vc1 setTabBarItem:[[UITabBarItem alloc] initWithTitle:@"Tab A" image:[UIImage imageNamed:@"tabA_unselected"] selectedImage:[UIImage imageNamed:@"tabA_selected"]]];
vc2 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"CBViewController"];
[vc2 setTabBarItem:[[UITabBarItem alloc] initWithTitle:@"Tab B" image:[UIImage imageNamed:@"tabB_unselected"] selectedImage:[UIImage imageNamed:@"tabB_selected"]]];
vc3 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"CBViewController"];
[vc3 setTabBarItem:[[UITabBarItem alloc] initWithTitle:@"Tab C" image:[UIImage imageNamed:@"tabC_unselected"] selectedImage:[UIImage imageNamed:@"tabC_selected"]]];
_tabController = (UITabBarController *)self.window.rootViewController;
[_tabController setViewControllers:[NSArray arrayWithObjects:vc1, vc2, vc3, nil] animated:YES];