2011-05-20 129 views
2

我加入在导航控制器视图控制器,然后将它添加到标签栏控制器。但如果我添加此像Tabbarcontroller与导航控制器

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]; 

这是工作正常..但与阵列导航不显示。

+0

你确信没有引用是零? – Joe 2011-05-20 12:49:10

+0

ya.actually我在appdelegate中看到了这个代码likerootViewController.photoViewController = [[PhotoViewController new] autorelease]; 如果([[DBSession sharedSession] isLinked]){ navigationController.viewControllers = [NSArray的arrayWithObjects:RootViewController的,rootViewController.photoViewController,零]。 } //添加导航控制器的视图到窗口和显示。 [window addSubview:navigationController.view]; – iProgrammer 2011-05-20 12:50:39

+0

我想添加此tabbarcontroller.any想法? – iProgrammer 2011-05-20 12:51:06

回答

0

我不认为你应该设置导航控制器的viewControllers阵列那样。相反,尝试:

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

这是假设你要当用户点击标签上展示照片视图控制器。它将位于导航控制器的堆栈顶部。

+0

感谢这工作 – iProgrammer 2011-05-21 05:56:07

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 {} 

,可以在其中设置选项卡名称和图像。

+0

我的应用程序是基于窗口。它是从开始页面启动,我在起始页面的button.please告诉我是否可以在基于Windows的基础上做到这一点的这条线? – iProgrammer 2011-05-21 05:04:49

+0

嗨。我不确定这一点。我从来没有尝试过窗口应用程序。我真的很抱歉,我今天不能尝试,因为我没有我的MAC。你可以试试。请写出结果。这对我也很有用。谢谢 :) – Nitish 2011-05-21 13:13:41