Comment ajouter UIButton à UIToolBar par programmation?
J'ai ajouté de la barre d'outils à l'aide de l'Interface Builder, mais j'ai besoin d'ajouter les boutons au moment de l'exécution /conditionnellement. Je ne reçois pas toutes les erreurs, mais mon dynamiques des boutons n'apparaissent pas dans la barre d'outils. J'ai vérifié que arrayOfModulesScreens est chargé avec les données dont j'ai besoin. Au moins ça fonctionne (:)). Ai-je besoin d'ajouter les boutons dans une UIView, puis l'ajouter à la barre d'outils? Il suffit de penser outloud. Il est peut-être une meilleure approche pour commencer? Merci d'avance pour toute les indices menant à la résoudre.
CustomFormController.h
@interface CustomFormController : UIViewController {
UIToolbar *screensBar;
}
CustomFormController.m
EPData *epData = [[EPData alloc] init];
NSArray *screens = [epData loadPlistIntoArray:@"Screens"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"process_module_id == %@", process_modulesID];
NSArray *arrayOfModulesScreens = [screens filteredArrayUsingPredicate:predicate];
for(int i=0; i < [arrayOfModulesScreens count]; i++) {
NSDictionary *dictRow = [arrayOfModulesScreens objectAtIndex:i];
UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
[button setTitle:[dictRow objectForKey:@"screen_title"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
[screensBar addSubview:button];
}
OriginalL'auteur iamtoc | 2011-08-16
Vous devez vous connecter pour publier un commentaire.
Si vous êtes réellement désireux d'ajouter une UIBarButtonItem (pas un UIButton) de la barre d'outils, il vous suffit de créer un ou plusieurs UIBarButtonItems, les mettre dans un NSArray (ou NSMutableArray), et affectez-le tableau à la
items
propriété de la barre d'outils. Voir le UIBarButtonItem documentation pour plus de détails. À l'aide de votre code ci-dessus, qui pourrait ressembler à quelque chose comme ceci:(vous pouvez, bien sûr, besoin de changer votre
buttonClick:
de s'attendre à un UIBarButtonItem au lieu d'un UIButton).Si vous êtes vraiment désireux de mettre un UIButton là, vous avez d'abord besoin d'envelopper le UIButton dans un UIBarButtonItem, quelque chose comme ceci:
Puis ajouter l'élément à la barre d'outils ci-dessus.
Quant à savoir pourquoi vos boutons ne s'affichent pas dans votre affiché le code, le problème est que UIButton de
buttonWithType:
crée un bouton avec zéro de la largeur et de la hauteur nulle. Vous auriez besoin de redimensionner le bouton (manuellement ou à l'aide desizeToFit
après la création du titre) pour la faire apparaître. Après la fixation, vous serait alors de voir que les boutons sont tous les uns sur les autres dans le coin supérieur gauche de la vue parent; vous devez les positionner manuellement selon le cas.Qui est parfaitement logique pour expliquer pourquoi il n'y a aucune image montrant. Merci pour toucher sur ce ainsi que de fournir une meilleure alternative.
OriginalL'auteur Anomie
Je ne pense pas que vous pouvez changer la
navigationController
directement dans votre code comme ça.Un moyen plus sûr serait celui-ci:
OriginalL'auteur Tri Nguyen
De La Barre D'Outils De L'Approche
Un problème avec l'ajout de
UIButton
àUIToolBar
est que la largeur de la touche et le positionnement des boutons est difficile à contrôlerApproche La Plus Simple
Supprimer la barre d'outils et le lieu d'une
UIView
avec l'image de fond qui est identique à votre barre d'outils. Vous pouvez maintenant ajouter leUIButton
comme une sous-vue de ce point de vue. De cette façon, vous avez plus de contrôle sur le positionnement et la largeur des boutons. Vous pouvez également ajouter d'autres points de vue.OriginalL'auteur user1046037