1

我在使用 tabBarController 构建应用程序时遇到问题。如果我从 AppDelegate 构建 tabBarController 和 navigationController 没有问题。

但是现在,当我想在从以前的导航控制器推送之后使用 tabBarController(3 个选项卡,每个都有导航控制器)创建新视图时,我遇到了问题。它根本行不通。

这是代码:

MainViewController *mainViewController = [[MainViewController alloc] initWithNibName:@"MainView_iPhone" bundle:nil];
mainViewController.tabBarItem.title = @"First";
UINavigationController *mainNavigationController = [[UINavigationController alloc] initWithRootViewController:mainViewController];

DictionariesViewController *dictionariesViewController = [[DictionariesViewController alloc] initWithNibName:@"DictionariesView_iPhone" bundle:nil];
dictionariesViewController.tabBarItem.title = @"Second";
UINavigationController *dictionariesNavigationController = [[UINavigationController alloc] initWithRootViewController:dictionariesViewController];

tabBarController = [[UITabBarController alloc] init];
tabBarController.viewControllers = [NSArray arrayWithObjects:mainNavigationController, dictionariesNavigationController, nil];

[self.navigationController pushViewController:tabBarController animated:YES];

将视图推送到“第一个”控制器后出现问题。应用程序崩溃...

请寻求帮助。

问候博鲁特

4

2 回答 2

1

你想用下面的代码做什么?

[self.navigationController pushViewController:tabBarController animated:YES];

您说您的应用程序有 3 个选项卡,每个选项卡都有一个导航控制器。因此,您应该做的是添加导航控制器tabBarController.viewControllers(您已经这样做了),但是您需要将其设置tabBarController为根视图控制器。

于 2010-07-06T19:38:51.060 回答
1

我已经这样做了,它的工作原理:

registerViewController = [[RegisterViewController alloc] initWithNibName:@"RegisterView_iPhone" bundle:nil];
AppDelegate_Phone *delegatePhone = [[UIApplication sharedApplication] delegate];
[delegatePhone.firstViewController.navigationController pushViewController:registerViewController animated:YES];

谢谢你们的帮助。

于 2010-07-08T18:33:01.973 回答