2011-09-09 32 views
0

我有一个TabBarController,在我这样的代码定义了两个标签:tabBarItem直到标签栏被窃听

NSMutableArray *viewControllerArray = [[NSMutableArray alloc]initWithCapacity:2]; 

DisplayMarketViewController *displayMarketViewController = [[DisplayMarketViewController alloc]init];  
[viewControllerArray addObject:displayMarketViewController]; 
[displayMarketViewController release]; 

DisplayDifferenceMarketViewController *displayDifferenceMarketViewController = [[DisplayDifferenceMarketViewController alloc]init]; 
[viewControllerArray addObject:displayDifferenceMarketViewController]; 
[displayDifferenceMarketViewController release]; 
myTabBarController.viewControllers = viewControllerArray; 

在我DisplayMarketViewController.m

self.tabBarItem.title = @"Tab1"; 
UIImage *image = [UIImage imageNamed:@"1.png"]; 
self.tabBarItem.image =image; 

和DisplayDifferenceMarketViewController.m

self.tabBarItem.title = @"Tab2"; 
UIImage *image = [UIImage imageNamed:@"2.png"]; 
self.tabBarItem.image =image; 

但是直到标签项被点击才显示Tab2。我该如何解决这个问题?

回答

0

您的DisplayDifferenceMarketViewController未被初始化,直到通过点击标签栏来访问它。因此,更改选项卡标题的代码在您访问它之前不会执行。

简单地把所有的TabBar相关的代码之外的视图控制器在标签栏,用你的标签条形码,像这样的休息:

NSMutableArray *viewControllerArray = [[NSMutableArray alloc]initWithCapacity:2]; 

DisplayMarketViewController *displayMarketViewController = [[DisplayMarketViewController alloc]init];  
[viewControllerArray addObject:displayMarketViewController]; 
[displayMarketViewController release]; 

DisplayDifferenceMarketViewController *displayDifferenceMarketViewController = [[DisplayDifferenceMarketViewController alloc]init]; 
[viewControllerArray addObject:displayDifferenceMarketViewController]; 
[displayDifferenceMarketViewController release]; 
myTabBarController.viewControllers = viewControllerArray; 

[viewControllerArray objectAtIndex:0].tabBarItem.title = @"Tab1"; 
UIImage *image = [UIImage imageNamed:@"1.png"]; 
[viewControllerArray objectAtIndex:0].tabBarItem.image =image; 

[viewControllerArray objectAtIndex:1].tabBarItem.title = @"Tab2"; 
UIImage *image = [UIImage imageNamed:@"2.png"]; 
[viewControllerArray objectAtIndex:1].tabBarItem.image =image; 
+0

非常感谢你,我已经sloved这个问题与您的代码。 – Gaojian922188