Вы добавляете свой значок в качестве подпредставления в chatButton, а не в self.view.Ваш цикл for выполняет итерации по self.view.subviews, а значок - это не подпредставление self.view, а подпредставление chatbutton.Вам придется либо перебирать chatButton.subviews, либо создавать рекурсивный метод, который перебирает все подпредставления.Кроме того, вы можете использовать viewWithTag , который, я думаю, ищет всю иерархию.
Я бы просто поместил переменную экземпляра на значок и вызвал бы [self.badge removeFromSuperview] или self.badge.hidden = YES;