当用户点击按钮时,我创建了一个UITabBarController,其上附有两个viewcontrollers。 然后我将TabBarController推到我的navigationController堆栈上,它显示没有问题。问题是在加载tabbarControlelr时尝试在其中一个标签栏项目上设置徽章,我试过了:
[[self.tabBarController.viewControllers objectAtIndex:1] setBadgeValue:@"1"];
以及这一个的很多变化,但是没有一个在tabbar项目上给我一个圆形的红色按钮。
有什么建议吗?
谢谢,
罗恩
修改
编码我如何呈现tabBarController
Airline_RosterAppDelegate *appDelegate = (Airline_RosterAppDelegate *)[[UIApplication sharedApplication] delegate];
CrewHere *vc = [[CrewHere alloc] initWithNibName:@"CrewHere" bundle:nil];
vc.title = @"Crewlist";
MessagesDetailed *mvc = [[MessagesDetailed alloc] initWithNibName:@"MessagesDetailed" bundle:nil];
mvc.title = @"Messageboard";
[tabbar setViewControllers:[NSArray arrayWithObjects:vc, mvc, nil]];
[tabbar setToolbarItems:[NSArray arrayWithObjects:@"Crewlist", @"Messageboard", nil]];
[appDelegate.navigationController pushViewController:tabbar animated:YES];
答案 0 :(得分:0)
属性'badgeValue'在UITabBarItem上定义。你可以用:
设置它 UITabBarItem *item = [self.tabBarController.tabBar.items objectAtIndex: 1];
item.badgeValue = @"1";
...
当'UITabBarController被加载'时,上面的代码也行不通,你的代码也不行。您只能在控制器出现后执行此操作,因为只有在此时才可以确定所有视图元素实际存在。将viewDidAppear:animated:
tabBarController
[编辑后,编辑]
您不能使用NSString的NSArray调用setToolbarItems:
;数组需要UITabBarItem。使用- (id)initWithTitle:(NSString *)title image:(UIImage *)image tag:(NSInteger)tag
此外,您似乎正在混合tool bar
和tab bar
- 它们是不同的。