2012-02-03 96 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