It looks like your badge is always positioned at (0, 0) in the navigation bar.
I assume that when you assign self.numberBadge, you are assigning it to an instance variable called numberBadge, otherwise you would had to use self.numberBadge instead.
I would try these things:
- creating the view with a frame not CGRectZero, but the frame where you want to place the badge. Sometimes views created with frame zero haven't behaved as I expected.
- try moving the badge center after the call to addSubview, just to make sure it won't mess with your frame.
If it still doesn't work, can you try adding the badge to a plain UIView and check if it works there?