Переместите код [self.view addSubview:label];
в свой блок if
. Если ваше условие if ложно, это означает, что метка уже является частью иерархии представлений вашего viewcontroller, поэтому, если вы добавите ее снова, как в исходном коде, она будет сохранена дважды.
UILabel *label = (UILabel *)[self.view viewWithTag:100];
if (!label) {
label = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 20, 20)] autorelease];
label.tag = 100;
[self.view addSubview:label];
}