带有tabbar和导航控制器的iOS应用程序

时间:2012-05-03 11:42:06

标签: ios navigation tabbar

在创建我的第一个iPhone应用程序的斗争中,我注意到Apple的示例有一个tabbar或导航栏,但从来没有。

是否可以这样做?

所以我这里有一个带有3个按钮的标签栏,我现在如何在整个应用程序中添加导航控制器?

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

UIViewController *activityViewController = [[[ActivityViewController alloc] initWithNibName:@"ActivityViewController" bundle:nil] autorelease];
UIViewController *agendaViewController = [[[AgendaViewController alloc] initWithNibName:@"AgendaViewController" bundle:nil] autorelease];
UIViewController *settingsViewController = [[[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil] autorelease];

self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:activityViewController, agendaViewController, settingsViewController, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];

编辑:

我真的没有关注,所以在我的appdelegate中我创建了一个navigationController并将其用作rootViewController。

然后我创建了一个tabBarController并将其添加到我的窗口

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

UINavigationController *mainViewController = [[UINavigationController alloc] init];
self.mainViewController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
self.window.rootViewController = self.mainViewController;
[self.window makeKeyAndVisible];

self.window.rootViewController.title = @"test";

MainViewController *tabBarController = [[MainViewController alloc] init];
[self.window addSubview:tabBarController.view];

但每当我跑步时,我都会收到错误“

  

不支持推送导航控制器

我还缺少什么吗?

2 个答案:

答案 0 :(得分:0)

你可以创建一个导航控制器,然后创建一个tabBarController并使用

将导航控制器添加到它
 //incase you have 2 navigation controllers
 tabBarController.viewControllers=[NSArray arrayWithObjects:navigationController1, navigationController2, nil ];

答案 1 :(得分:0)

嘿,这在概念上很容易:

你的rootViewController必须是你的navigationController,因为它会来回推送你的视图。

YourRootController *cont = [[YourRootController alloc] init];

UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:cont];

YourViewControllerUITabBarController

的子类

就是这样。