带导航控制器的Tabbarcontroller

时间:2011-05-20 12:44:07

标签: iphone uinavigationcontroller uitabbarcontroller

我在导航控制器中添加了视图控制器,然后将其添加到标签栏控制器。但如果我添加这个像

navigationController.viewControllers = 
        [NSArray arrayWithObjects:rootViewController, rootViewController.photoViewController, nil];


tabBarController.viewControllers = [NSArray arrayWithObjects:tourNavigation,mapNavigation ,browserNavigation,
                                        navigationController,nil];

这不显示带有第四个导航控制器的选项卡..其他控制器很简单

BrowserViewController *browserView = [[BrowserViewController alloc]initWithNibName:@"BrowserViewController"
                                                                                bundle:nil];

    browserView.title = @"Browser";

    UINavigationController *browserNavigation = [[[UINavigationController alloc]initWithRootViewController:browserView]
                                                 autorelease];

这样工作正常..但是没有显示数组导航。

2 个答案:

答案 0 :(得分:0)

我认为您不应该像这样设置导航控制器的viewControllers数组。而是尝试:

navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[navigationController pushViewController:rootViewController.photoViewController animated:NO];

这假设您希望在用户点击选项卡时显示照片视图控制器。它将位于导航控制器堆栈的顶部。

答案 1 :(得分:0)

您需要从基于视图的应用程序开始。然后在你的appDelegate文件中创建一个UITabbarController。

Appdelegate.h

UITabBarController *tabBarController;
// set properties

Appdelegate.m

// Synthsize

tabBarController = [[UITabBarController alloc] init];
tabBarController.delegate=self;

//Adding Search,Nearby,Map,AboutUs,Favorites Tabs to tabBarController  
Search * search = [[Search alloc] init];  
UINavigationController *searchNav = [[UINavigationController alloc] initWithRootViewController:search];  

Nearby* nearby = [[Nearby alloc] init];  
UINavigationController *nearbyNav = [[UINavigationController alloc] initWithRootViewController:nearby];  

Map* map = [[Map alloc] init];  
UINavigationController *mapNav = [[UINavigationController alloc] initWithRootViewController:map];  

AboutUs* aboutUs = [[AboutUs alloc] init];  
UINavigationController *aboutUsNav = [[UINavigationController alloc] initWithRootViewController:aboutUs];  

Favorites* favorites = [[Favorites alloc] init];  
UINavigationController *favoritesNav = [[UINavigationController alloc] initWithRootViewController:favorites];  

NSArray* controllers = [NSArray arrayWithObjects:searchNav,nearbyNav,mapNav,aboutUsNav,favoritesNav, nil];  
tabBarController.viewControllers = controllers;  

[window addSubview:tabBarController.view];    

您可以相应地管理您要在哪个选项卡中放置导航控制器或仅放置视图控制器。

然后在上面提到的每个视图控制器中,你需要实现

- (id)init {}

您可以在其中设置标签名称和图像。