为什么我的UITabBarController是空的?

时间:2010-01-26 13:28:07

标签: iphone uitabbarcontroller uitabbaritem

我创建了一个像这样的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 = controllers;     [tbc release];

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

标签栏显示没有项目,它是空的。

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

1 个答案:

答案 0 :(得分:1)

你不想错过:

self.tabBarController.viewControllers = controllers;

编辑:

除此之外,我没有在包含的代码中看到任何错误的内容,所以这让我认为其他东西一定是错的。一些选择:

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

    一起使用,都要尝试显示它们

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

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

  5. 从这些开始,如果没有任何迹象表明其他问题,我可以考虑再尝试一些事情。