2012-06-21 61 views
-3

有些日子,我一直忍受着UITabBarItem s。患有UITabbaritems

我已經完成我的應用程序的編程方式,不使用Interface Builder。 我有一個UINavigationBarUITabbarController

從我主頁當我進行導航(我的意思是當我移動到下一頁),當時我點擊了下一個標籤項目(聯繫人),並再次當我點擊主頁按鈕時,它不是移動主頁,它與先前的網頁,我離開了那剩下的一個,它不重定向到在所有的主頁,

我已經放在UITabbarController -code在我的應用程序委託:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.tabBarController = [[UITabBarController alloc] init]; 
viewController *vc = [[viewController alloc] init]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:vc]; 
[navController.tabBarItem setTitle:@"Home"]; 
[navController.tabBarItem setImage:[UIImage imageNamed:@"home.png"]]; 

viewController1 *vc1 = [[viewController1 alloc] init]; 
UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:vc1]; 
[navController1.tabBarItem setTitle:@"Contact"]; 
[navController1.tabBarItem setImage:[UIImage imageNamed:@"contact.png"]]; 

viewController2 *vc2 = [[MapViewController alloc] init]; 
UINavigationController *navController2 = [[UINavigationController alloc] initWithRootViewController:vc2]; 
[navController2.tabBarItem setTitle:@"Info"]; 
[navController2.tabBarItem setImage:[UIImage imageNamed:@"info.png"]]; 

NSArray *viewControllers = [NSArray arrayWithObjects:navController, navController1,navController2, nil]; 
_tabBarController.delegate = self; 
[_tabBarController setViewControllers:viewControllers]; 

[self.window setRootViewController:_tabBarController]; 
[self.window makeKeyAndVisible]; 
return YES; 

我沒有使用這些方法:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 

請給我一些建議,或者對我有用的東西。

+0

我不確定我是否理解你的問題,因爲你的方式。你能爲我簡化嗎?你想要什麼? – Popeye

+0

這與你已經問過的問題不一樣嗎?以編程方式無法設置操作爲uitabbaritem。我相信你已經複製了你自己的問題。 – Popeye

+0

我得到了tabbar的,現在我得到了另一個問題,所以我再次問了 –

回答

0

UITabbarController的默認行爲是,如果您點擊一個選項卡並且此選項卡包含導航控制器,則會獲得位於navigationcontrollers viewcontroller-stack頂部的頁面。

爲了避免這種情況,您必須在點擊選項卡時彈出一個對話框。

如果實現

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    [viewController.navigationController popToRootViewControllerAnimated:NO]; 
} 

它應該做的伎倆。

+0

我認爲不需要「navigationController」[viewController popToRootViewControllerAnimated:NO]; –