如何在xcode 4.2中添加新选项卡

时间:2011-12-22 19:02:33

标签: objective-c ios crash uitabbarcontroller xcode4.2

我使用选项卡视图模板在Xcode 4.2中启动了一个项目。在app委托中,我按代码添加了第三个选项卡,就像第一个和第二个选项卡一样。然后我用nib文件创建了第三个视图控制器类 当我运行这个应用程序时,我看到所有三个选项卡,但是当我点击第三个选项卡时,它会崩溃。 我注意到第一个和第二个nib文件在视图的底部(可能代表标签栏)有一个暗条,但我创建的新的第三个nib文件缺少它。知道如何让第三个标签工作吗?

由于

这是我添加第三个视图控制器的方式。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
UIViewController *viewController1, *viewController2, *viewController3;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil];
    viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil];
    viewController3 = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController_iPhone" bundle:nil];
} else {
    viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPad" bundle:nil];
    viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPad" bundle:nil];
}
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1,  viewController2, viewController3, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}

1 个答案:

答案 0 :(得分:0)

在选项卡栏控制器中,确保选项卡的视图控制器的类与您创建的视图控制器类相同。

同时检查日志,它可能会为您提供一条非常有用的消息,说明它崩溃的原因。

修改

没关系,您正在为viewController3传入一个未初始化的视图控制器。将所有这些初始值设置为nil。