我可以通过以下代码更改 AppDelegate.m 中的徽章值:
UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;
[[tabController.viewControllers objectAtIndex:0] tabBarItem].badgeValue = @"Badge";
仅当 tabBarViewController 是窗口的根视图控制器时。
但是,在我的新程序中,tabBarController 不是根视图。
我试过以下代码:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UITabBarController *tabController = (UITabBarController *)[storyboard instantiateViewControllerWithIdentifier:@"tabBarController"] ;
[[tabController.viewControllers objectAtIndex:0] tabBarItem].badgeValue = @"Badge";
它只是行不通。tabBarItem 不显示任何徽章。
编辑-
我添加了以下代码来检查是否创建了 tabController,答案是肯定的。
if (tabController) {
NSLog(@"tabController has been created ");
}else {
NSLog(@"You have a null reference - The Object hasn't been created yet");
}
答案是肯定的。
2013-03-01 11:57:00.600 报告 [14854:907] 选项卡控制器已创建
但是,预期的徽章仍然没有出现。