Actuellement, j'ai 14 boutons créés par programme en utilisant une boucle for, code ci-dessous :
int buttonCount = 14;
for (int i=0; i< buttonCount; i++) {
//Create titleString from array object
NSString *stringFromInt = [NSString stringWithFormat:@"%@",[arrayForRound objectAtIndex:i]];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self
action:@selector(buttonSelected:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:stringFromInt forState:UIControlStateNormal];
button.titleLabel.font = [UIFont fontWithName:@"helvetica" size:19];
button.tag = i;
[self.view addSubview:button];
}
Cela fonctionne très bien pour créer les boutons, je peux ensuite remplir la boîte de réponse avec la valeur du bouton sélectionné :
-(void)buttonSelected: (UIButton *)sender
{
[_buttonOne setTitle:sender.titleLabel.text forState:UIControlStateNormal];
}
Cependant, une fois que le bouton a été rempli, je voudrais le supprimer de l'écran. Si j'appelle button.hidden, cela masque simplement le dernier bouton qui a été créé par programme. Je suis conscient de l'existence de button.tag et j'ai essayé de l'utiliser, mais j'ai l'impression que je dois faire quelque chose comme ça :
//Hide button for tag (i know this is incorrect syntax)
button for buttonTag: 3 setHidden;
Existe-t-il quelque chose de similaire ou un moyen de le faire ?
Mise à jour
Le bouton que j'essaie de masquer est celui qui a été créé par programme. Je veux donc que _buttonOne prenne le titre du bouton créé (appelons-le letterButton), puis que letterButton soit caché de la vue,
UIButton *yourBtn = (UIButton *)[self.button viewWithTag:3];
[yourBtn setHidden:YES];
(code posted by Oh Seung Kwon)
Ce code fonctionne parfaitement mais il cache le mauvais ensemble de boutons. (Il masque _buttonOne et non letterButton).
Je me demande s'il ne serait pas mieux de créer les 12 boutons en nib et de les nommer manuellement... Il n'y en aura jamais plus ou moins que 12.