UITabbarcontroller内导航控制器的问题

时间:2011-05-26 10:17:16

标签: iphone uinavigationcontroller uitabbarcontroller

我有一个带有4个tabbar项的UITabbarcontroller。每个tabbar项都有UINavigationController.Actually Tabbar从堆栈加载最后一个视图控制器,同时我切换下一个tabbar项。

每当我在tabbar项目之间切换时,我想从堆栈加载第一个视图控制器。

我怎样才能实现这个目标?

2 个答案:

答案 0 :(得分:0)

您希望它返回到每个标签中的根视图控制器,而不是在切换标签时记住用户所在的层次结构中的位置吗?

您需要在切换标签时在导航控制器上调用popToRootViewControllerAnimated:NO(即在标签栏控制器委托方法中)。

答案 1 :(得分:0)

您可以遵循的最佳方法是:

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

您可以在其中设置标签名称和图像 希望这会有所帮助。