Вы чрезмерно отпускаете каждую кнопку, из-за чего она исчезает из поля зрения. Когда вы создаете кнопку с помощью [UIButton buttonWithType ...], она добавляется в пул автоматического выпуска, и у вас нет права собственности на нее. Когда вы добавляете его в представление, его счетчик приращений увеличивается на 1, давая вам право владения, но затем вы снова отпускаете его с помощью [кнопки выпуска]. Удалите строку [кнопка выпуска] и все должно быть хорошо.
Я настоятельно рекомендую вам прочитать Руководство по программированию управления памятью Apple.
Я переписал ваш код, переместив создание кнопки в метод, который вы должны вызывать при каждом нажатии кнопки добавления. Вам также необходимо объявить переменную NSInteger с именем buttonCount в файле заголовка (.h).
- (void)addButton {
if (buttonCount == 4) return;
buttonCount += 1;
UIButton *tempBName = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[tempBName setTitle:[NSString stringWithFormat:@"button%i", buttonCount]; forState:UIControlStateNormal];
tempBName.tag = buttonCount;
[tempBName addTarget:self action:@selector(clickMe:)forControlEvents:UIControlEventTouchUpInside];
tempBName.frame = CGRectMake(0.0, 50.0+(startPositionY*buttonCount)), 80.0, 50.0);
// Removed the line setting the center, and move the positioning to the frame above
tempBName.titleLabel.adjustsFontSizeToFitWidth = TRUE;
[self.view addSubview:tempBName];
}