2012-02-03 93 views
0

我正在向UIBarButtonItem添加徽章......它工作正常。但我无法删除它。任何帮助表示赞赏。从UIBarButtonItem中删除徽章子视图

谢谢。

代码:

MKNumberBadgeView *badge = [[MKNumberBadgeView alloc] initWithFrame:CGRectMake(45, -10, 30,30)]; 
badge.value = @"!"; 
badge.layer.cornerRadius = 10; 
badge.layer.masksToBounds = YES; 
badge.tag = 42; 

if ([self.chatCount isEqualToString:@"1"]) { 
    [chatButton addSubview:badge]; 
} else { 
    for (UIView *view in [self.view subviews]) { if (view.tag == 42) { [view removeFromSuperview]; } } 
    [badge release]; 

} 

UIBarButtonItem *chat = [[UIBarButtonItem alloc] initWithCustomView:chatButton]; 
self.navigationItem.rightBarButtonItem = chat; 
[chat release]; 

回答

3

你将你的徽章作为一个子视图到chatButton不self.view。你的for循环遍历self.view.subviews并且徽章不是self.view的子视图,而是chatbutton的子视图。您将不得不遍历chatButton.subviews或创建迭代遍历所有子视图的递归方法。或者,您可以使用viewWithTag,我认为它搜索整个层次结构。

我只是举一个实例变量徽章和调用[self.badge removeFromSuperview]或self.badge.hidden = YES;

+0

谢谢!我已经脑死了盯着这个... – mtb 2012-02-03 18:07:49