我创建了一个像这样的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文件...没有警告,没有错误,没有任何记录到控制台。只是清空标签栏。
答案 0 :(得分:1)
你不想错过:
self.tabBarController.viewControllers = controllers;
编辑:
除此之外,我没有在包含的代码中看到任何错误的内容,所以这让我认为其他东西一定是错的。一些选择:
您确定要创建的控制器是否正确创建?无论tabBar与
一起使用,都要尝试显示它们[self.tabBarController presentModalViewController:iVC animated:YES];
是否从NIB创建了UITabController?如果在initWithNibName或awakeFromNib上放置NSLog,以确保在代码之前调用它,并且在代码之后不再调用它。
从这些开始,如果没有任何迹象表明其他问题,我可以考虑再尝试一些事情。