我不知道如何更新我以前的帖子/问题,所以我开始了另一个。(我在这里没有问很多问题。对stackoverflow来说还是很新的)
我现在有三个徽章,需要一起(或独立)控制它们。
-(void)viewWillAppear:(BOOL)animated{
[self fillBadges];
//********** Start Custom Badge All ***************//
NSString *myNewString = [NSString stringWithFormat:@"%i",allBadge];
if (allBadge >= 1) {
CustomBadge *customBadgeAll = [CustomBadge customBadgeWithString:myNewString];
customBadgeAll.tag = 100;
[customBadgeAll setFrame:CGRectMake(125, 90, customBadgeAll.frame.size.width, customBadgeAll.frame.size.height)];
[self.view addSubview:customBadgeAll];
}else{
[[self.view viewWithTag:100] removeFromSuperview];
}
//********** Start Custom Badge 1 ***************//
NSString *myNewString1 = [NSString stringWithFormat:@"%i",badge1];
if (badge1 >= 1) {
CustomBadge *customBadge1 = [CustomBadge customBadgeWithString:myNewString1];
customBadge1.tag = 200;
[customBadge1 setFrame:CGRectMake(125, 165, customBadge1.frame.size.width, customBadge1.frame.size.height)];
[self.view addSubview:customBadge1];
}else{
[[self.view viewWithTag:200] removeFromSuperview];
}
//********** Start Custom Badge 2 ***************//
NSString *myNewString2 = [NSString stringWithFormat:@"%i",badge2];
if (badge2 >= 1) {
CustomBadge *customBadge2 = [CustomBadge customBadgeWithString:myNewString2];
customBadge2.tag = 300;
[customBadge2 setFrame:CGRectMake(125, 232, customBadge2.frame.size.width, customBadge2.frame.size.height)];
[self.view addSubview:customBadge2];
}else{
[[self.view viewWithTag:300] removeFromSuperview];
}
//********** End Custom Badge ***************//
[self.view setNeedsDisplay];
[[self navigationController] setNavigationBarHidden:NO animated:NO];
}
if else 语句正在工作。然而 removeFromSuperview (当它工作时)只会以与设置方式相反的顺序一一删除徽章,并且只有当我离开视图并返回它时。在这种情况下 3 次。例如:打开 3 个徽章。在 viewBadgeSet 中,badge2 设置为 >1,然后 badge1 设置为 >1,最后 badge3 设置为 >1(无特定顺序)。我查看 viewMainButtons 中的视图,现在打开了三个徽章。现在,如果 viewBadgeReset 中的所有标记都设置为 0,那么我回到 viewMainButtons,badge3 将消失。然后我必须转到另一个视图,然后返回 viewMainButtons,badge1 将消失,再次离开视图并返回 viewMainButtons,最后 badge3 将消失。我希望这是有道理的。如何一起从视图中删除所有徽章?抱歉这么浓。我希望这个问题不会太模糊。我只是不确定该怎么做。
(显然我没有足够的积分进入聊天)
谢谢