2010-10-27 138 views
1

我有以下代码:如何修改标题和徽章图标的UITabBarController

tabBarViewController = [[TabBarViewController alloc] init]; 
mvc = [[MapViewController alloc] init]; 
tvc = [[TableViewController alloc] init]; 
tabBarViewController.viewControllers = [NSArray arrayWithObjects: tvc, mvc, nil]; 

然而,在模拟器开放的时候,我没有看到这两个UITabBar任何头衔或徽章。我怎样才能为这两个人分配头衔和徽章?

回答

7

您必须设置每个子视图控制器的tabBarItem财产UITabBarItem名单:

MapViewController* mvc = [[MapViewController alloc] init]; 
UIImage* mapIcon = [UIImage imageNamed:@"mapIcon.png"]; 
mvc.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@"Map" image:mapIcon tag:0] autorelease]; 
mvc.tabBarItem.badgeValue = @"abc"; 

TableViewController* tvc = [[TableViewController alloc] init]; 
tvc.tabBarItem = [[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:0] autorelease]; 
mvc.tabBarItem.badgeValue = @"100"; 
1

TabBarViewController对其UITabBar有一个属性。
的UITabBar有有徽章

[tabBarViewController.tabBar.items objectAtIndex:0].badgeValue = @"1"; 
0

为什么不使用在TVC这个代码,MVC

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 
     // Custom initialization 

    self.tabBarItem = [ [ UITabBarItem alloc ] 
     initWithTitle:@"YOUR TITLE" 
     image:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"IMAGE" ofType:@"png"]] 
     tag:1 ]; 

    } 
    return self; 
}