J'ai environ 10 boutons UIB sur le fichier xib et je veux définir le texte par programme
Vous voudrez peut-être être plus précis la prochaine fois que vous poserez une question.
Vous pouvez essayer d'attribuer une balise différente pour chaque bouton dans le générateur d'interface (ou la même balise si c'est ce dont vous avez besoin), puis utiliser le code suivant
for (int i = 1 ; i<=10;i++)
{
UIButton *myButton = (UIButton *)[myView viewWithTag:i];
[myButton setTitle:@"my text" forState:UIControlStateNormal];
}
Je pense que vous pouvez créer une collection de boutons à partir de votre mise en page:
Sélectionnez le premier bouton de votre xib et faites-le glisser avec le bouton droit dans votre code:
alors vous devez sélectionner "Outlet Collection" pour le type de connexion et attribuer un nom:
Ensuite, dans votre code, vous avez un tableau de boutons de votre fichier xib:
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttons;
Ensuite, sélectionnez et faites glisser les autres boutons sur la collection créée, faites-le un par un dans l'ordre que vous souhaitez répéter:
Vous pouvez vérifier l'ordre des boutons dans l'inspecteur de connexions en survolant le tableau que vous avez créé:
Maintenant, définissez le texte de chaque bouton:
for (int i = 0; i<self.buttons.count; i++) {
UIButton * button = self.buttons[i];
[button setTitle: [NSString stringWithFormat:@"Button %d",i ] forState:UIControlStateNormal];
}
Notez que UIControlStateNormal est l'état par défaut et s'il n'est pas remplacé, il sera affiché pour tous les états:
En général, si une propriété n'est pas spécifiée pour un état, la valeur par défaut est d'utiliser la valeur UIControlStateNormal. Si la valeur de UIControlStateNormal n'est pas définie, la propriété prend par défaut une valeur système. Par conséquent, vous devez au minimum définir la valeur de l'état normal.
J'espère que ça aide