正如标题所示,我已经构建了一个基于实用程序的应用程序 该应用程序包含(目前)2个视图控制器+模型类层次结构 问题是,因为我想在应用程序中添加一些功能,我想将其转换为基于TabBar的应用程序。
作为第一步,我希望第一个视图是标签栏的第一个视图,flipSideView是其他标签栏项之一。
此类任务是否有“标准程序”/“购物清单”? 我相信你们中的一些人遇到了同样的问题,并且会喜欢一些关于“切片”应用程序的建议,并在为主窗口创建一个新的nib文件之后“连接它”(这是第一步吗?)
提前致谢。
答案 0 :(得分:2)
我可能会开始如下(假设您正在使用Interface Builder并使用标准Xcode实用程序应用程序模板):
在App Delegate中为Tab Bar Controller添加一个IBOutlet属性,如下所示(不要忘记综合属性):
@property(nonatomic,retain)IBOutlet UITabBarController * tabBarController;
在IB中,将tabAarController出口从App委托对象连接到Tab Bar Controller对象。
最后,要显示标签栏控制器以代替主视图控制器,请将应用程序中的代码更改为:didFinishLaunchingWithOptions:以下内容:
[self.window addSubview:self.tabBarController.view];
这应该启动并运行基本标签栏应用程序,您可以向标签栏添加其他视图控制器。
由于您不再想在MainView和FlipsideView之间切换,您可以从MainViewController中删除对FlipsideViewControllerDelegate的引用以及info按钮及其IBAction方法showInfo。同样在FlipeSideViewController中,您应该从视图及其IBAction方法中删除完成按钮,因为当与标签栏一起使用时,这些按钮不再有意义。
答案 1 :(得分:1)
所以,一步一步:): 1.在你的app委托中声明UITabController插座。 2.在MainWindow.xib中:首先在文档窗口中拖动UITabBarController的实例,然后从app delegate连接到该实例。现在你可以将MainViewController设置为UiTabBarController的第一个tab viewcontroller,然后将FlipsideViewController设置为UiTabBarController的第二个tab viewcontroller。 3.在app delegate的appDidFinishLaunching中替换[self.window addSubview:mainViewController.view];使用[self.window addSubview:theNameOfUITabBarControllerOutlet.view] ;.这将做的工作。对不起,我不知道你的背景,这就是为什么我不是非常具体地执行我描述的特定动作,所以如果你发现自己陷入困境请告诉我