【发布时间】:2010-11-05 01:02:39
【问题描述】:
我在网上找了一圈,没能找到一个可以接受的解决这个问题的方法……
我正在寻找一个简单的代码模式:
从单独的 .xib 文件中加载 TabBarController 对象(带有关联的子视图控制器),而不是从默认的 MainWindow.xib 中包含并自动加载。
在 XCode 术语中,从一个新的 iPad/iPhone 项目作为“Tab Bar Application”开始,目标是解决以下问题:
- 创建项目
- 从 MainWindow.xib 中移动:TabBarController、TabBar、FirstViewController 和 SelectedSecondViewController 到新的“TabBarController.xib”文件中
- 移动后,MainWindow.xib 应该只包含:文件的所有者、第一响应者、应用代理、窗口
- 在 TabBarController.xib 中,文件的所有者和第一响应者分别设置为:UIApplication 和 UIResponder。
- 将主应用程序委托中的“didFinishLaunchingWithOptions”更改为以下内容:
删除:
[self.window addSubview:tabBarController.view];添加:
UITabBarController *uiTab = [[UITabBarController alloc] initWithNibName:@"TabBarController" bundle:nil]; [self.window addSubview:uiTab.view];通过这些更改,应用程序构建并运行,但是当 TabBarController 加载时,标签栏是“空的”——控制器中似乎没有任何内容。
在调试器中查看时,“init”没有从数据中正确初始化,或者 .xib 文件中的某些内容设置不正确。
解决这个问题的正确方法是什么?我意识到还有其他方法可以做到这一点,是的,我让它们在其他应用程序中工作。
然而,我正在寻找的是,是使用默认项目的特定解决方案,可用作设置 iOS 代码的一般模式。
提前感谢您的帮助
- js
【问题讨论】:
标签: xcode design-patterns ios xib tabbarcontroller