0

TabBarController があり、次のようにコードで 2 つのタブを定義します。

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 は表示されません。この問題を解決するにはどうすればよいですか?

4

1 に答える 1

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;
于 2011-09-09T01:57:00.803 に答える