2010-01-26 86 views
0

我创建了一个的UITabBarController这样的:为什么我的UITabBarController是空的?

InfoViewController *iVC = [[InfoViewController alloc] init]; 
self.infoViewController = iVC; // retain property 

UITabBarItem *tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemSearch tag:0]; 
self.infoViewController.tabBarItem = tabBarItem; 





UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:myVC]; 
self.navigationController = nc; 

UITabBarItem *tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemMostRecent tag:1]; 
self.navigationController.tabBarItem = tabBarItem; 






UITabBarController *tbc = [[UITabBarController alloc] init]; 

NSArray* controllers = [NSArray arrayWithObjects:self.infoViewController, self.navigationController, nil]; 

self.tabBarController = tbc; // retain property! 

self.tabBarController.viewControllers =控制器; [tbc release];

问题:我在底部看到一个黑色的标签栏和一个白色的内容区域。数组中的第一个视图控制器具有红色背景色。所以它应该显示为红色。

选项卡栏不显示任何项目,它是空的。

可能是什么问题?我不使用nib文件...没有警告,没有错误,没有记录到控制台。只需清空选项卡栏。

回答

1

你不丢失:

self.tabBarController.viewControllers = controllers; 

编辑:

比好其他的我没有看到附带的代码是错误的东西,所以这使我觉得这事否则一定是错的。几个选项:

  1. 你确定self.tabBarController指向任何东西(不是零)?
  2. 你确定它指向你看到的同一个UITabController吗?
  3. 您确定您创建的控制器是否已正确创建?尝试显示它们,无论tabBar与

    [self.tabBarController presentModalViewController:iVC animated:YES];

  4. 是从NIB创建的UITabController吗?如果在initWithNibName或awakeFromNib上放置NSLog以确保它在代码之前被调用,并且不会在代码之后被再次调用。

开始与这些如果没有显示出任何迹象表明,别的东西是错误的,我能想到的一些事情去尝试。

+0

对,我忘了复制并粘贴到这里。但这不是原因。 – openfrog 2010-01-26 16:32:26

+0

看到我更新的答案 – 2010-01-26 17:16:41