将简单应用转换为标签栏

时间:2012-05-22 01:27:17

标签: ios interface-builder uitabbarcontroller

我有一个类似于SO question的问题,但略有不同(或者我的技能不允许我自信地遵循指示)。我有一个现有的游戏应用程序,有一个视图控制器和一个笔尖,工作正常。我想将它转换为标签栏控制器。我希望原始的现有视图控制器位于第一个选项卡上,我为第二个选项卡编写了一个新的视图控制器和一个新的笔尖,它将专用于游戏设置。在这个阶段,应用程序使用项目中的新笔尖和视图控制器构建并运行良好(但没有进一步编辑 - 不尝试添加标签栏控制器等)。修改后的应用程序应该只有两个视图,每个视图都可以从两个选项卡中的一个访问。

抱歉长bkgnd。我正在按照上面提到的问题接受答案。我已经或可以做的前4个步骤。第五步是Delete the old version of your Main View Controller from the NIB file and also remove the IBOutlet property from the Application Delegate。我不认为我的应用程序中有这样的IBOutlet(这与OP的应用程序不同)。我应该删除此列表中显示的对象视图控制器吗?或者我在这里错误的轨道?

enter image description here

其他信息

- (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;
}

1 个答案:

答案 0 :(得分:2)

这应该让你朝着正确的方向......

- (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;
}