我有一个与此类似的问题 SO question ,但略有不同(或者我的技能不允许我自信地按照指示进行操作)。我有一个现有的游戏应用程序,它有一个 View Controller 和一个 Nib ,并且运行良好。我想将其转换为具有标签栏 Controller 。我希望原始的现有 View Controller 位于第一个选项卡上,我为第二个选项卡编写了一个新的 View Controller 和一个新的 Nib ,专门用于游戏设置。在此阶段,应用程序使用项目中的新 Nib 和 View Controller 构建并运行良好(但没有进一步编辑——没有尝试添加选项卡栏 Controller 等)。修改后的应用应该只有两个 View ,每个 View 都可以从两个选项卡之一访问。
抱歉背景这么长。我正在关注上述问题的公认答案。前4个步骤我已经做过或者可以做。第 5 步是从 NIB 文件中删除旧版本的主视图 Controller ,并从 Application Delegate 中删除 IBOutlet 属性
。我认为我的应用程序中没有这样的 IBOutlet
(这与 OP 的应用程序不同)。我应该删除此列表中显示的对象 View Controller 吗?还是我走错路了?
附加信息
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Set up view controller & load a clean view
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[P3ViewController alloc] initWithNibName:@"P3ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
NSLog(@"P3ViewController now active");
[self.window makeKeyAndVisible];
return YES;
}
最佳答案
这应该让你朝着正确的方向前进......
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UITabBarController *tbc = [[UITabBarController alloc] init];
YourNewViewController *ynvc = [[YourNewViewController alloc] initWithNibName:@"YourNewViewController" bundle:nil];
YourCurrentViewController *ycvc = [[YourCurrentViewController alloc] initWithNibName:@"YourCurrentViewController" bundle:nil];
[tbc setViewControllers:[NSArray arrayWithObjects:ynvc, ycvc, nil]];
self.window.rootViewController = tbc;
[self.window makeKeyAndVisible];
return YES;
}
关于ios - 将一个简单的应用程序转换为具有标签栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10694691/