将实用程序应用程序(2个视图控制器)转换为选项卡栏应用程序
如标题所示,我已经构build了一个基于实用程序的应用程序。
该应用程序包括(目前)2视图控制器+模型类层次结构。
事情是,因为我想添加一些function的应用程序,我想将其转换为基于TabBar的应用程序。
作为第一步,我希望第一个视图是标签栏的第一个视图,而flipSideView是其他标签栏项目之一。
这样的任务有没有“标准程序”/“购物清单”?
我相信你们中的一些人遇到了同样的问题,并且会喜欢一些关于“切片”应用程序的build议,并且在为主窗口创build一个新的nib文件之后“连线”(这是第一步?
提前致谢。
我可能会开始如下(假设您正在使用Interface Builder,并使用标准的Xcode实用程序的应用程序模板):
- 编辑MainWindow.xib文件,然后将选项卡栏控制器对象拖到视图层次结构的顶层。
- IB中的默认标签栏控制器包含两个视图控制器项目作为示例。 单击第一个,将其类更改为您现有的主视图控制器类。
- 您还可以通过添加IB已添加到视图层次结构的关联选项卡栏项来设置主视图控制器项目的图标和选项卡栏标题。
- 对设置FlipsideViewController的类的第二个标签栏项目做同样的事情。
- 从NIB文件中删除旧版本的主视图控制器,并从应用程序委托中删除IBOutlet属性(您可能还需要在dealloc中引用主视图控制器中应该删除的内容)。
-
在您的App Delegate中,为Tab Bar Controller添加一个IBOutlet属性,如下所示(不要忘记综合属性):
@属性(非primefaces,保留)IBOutlet UITabBarController * tabBarController;
-
在IB中,将来自App委托对象的tabBarController出口连接到选项卡栏控制器对象。
-
最后,让标签栏控制器显示在主视图控制器的位置更改应用程序中的代码:didFinishLaunchingWithOptions:到以下内容:
[self.window addSubview:self.tabBarController.view];
这应该得到基本的标签栏应用程序启动和运行,你可以添加额外的视图控制器到标签栏。
由于您不再需要在MainView和FlipsideView之间进行切换,因此您可以从MainViewController中删除对FlipsideViewControllerDelegate的引用,以及infobutton及其IBAction方法showInfo。 同样在FlipeSideViewController中,你应该从视图和它的IBAction方法中删除donebutton,因为这些方法在使用标签栏时不再有意义。
所以,一步一步:):1.在你的应用程序委托中声明UITabControllersockets。 2.在MainWindow.xib中:首先在文档窗口中拖动UITabBarController的实例,然后从应用程序委托连接到该实例。 现在可以将MainViewController设置为UiTabBarController的第一个tab viewcontroller,然后将FlipsideViewController设置为UiTabBarController的第二个tab viewcontroller。 3.在应用程序委托的appDidFinishLaunchingreplace[self.window addSubview:mainViewController.view]; 与[self.window addSubview:theNameOfUITabBarControllerOutlet.view] ;. 那会做这个工作 对不起,我不知道你的背景,这就是为什么我不是非常具体地执行我描述的特定行动,所以让我知道,如果你发现自己卡住了