2011-04-18 3 views
1

Je reçois du JSON depuis le réseau et en fonction de ces données, je dois créer 2 ou 3 boutons. Une partie de mon interface graphique est statique et créée en NIB (ne changera pas), seul le nombre de boutons changera. J'ai trouvé ce code pour faire des boutons dans le code:Où insérer du code qui crée des boutons par programme?

//create the button 
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

//set the position of the button 
button.frame = CGRectMake(100, 170, 100, 30); 
//set the button's title 
[button setTitle:@"Click Me!" forState:UIControlStateNormal]; 

Est-ce le bon chemin? Dans quelle méthode de mon viewcontroller devrais-je mettre ce code?

+0

Vous pouvez créer le bouton quand vous le souhaitez. Ajoutez-le simplement à la vue. –

Répondre

1

Vous pouvez ajouter le bouton à chaque fois que vous voulez, tant que la vue est déjà chargée. La seule chose que vous auriez besoin d'ajouter au code ci-dessus est

[[self view] addSubview:button]; 

En utilisant ce code, vous avez un bouton sur l'écran, mais il ne sera pas en mesure de déclencher des actions. Vous voudrez probablement également ajouter:

[button addTarget:self action:@selector(someMethod:) forControlState:UIControlEventTouchUpInside]; 
+0

Je me demandais juste, et si je fais une erreur et mettre mon bouton à la même position qu'un autre élément de l'interface utilisateur de NIB occupe. Est-ce que le chevauchement ou tout va planter? – DixieFlatline

+0

Sauf indication contraire, l'élément de l'interface utilisateur ajouté _last_ sera affiché en haut (méthode du peintre), et le tapotement activera quel que soit l'élément de l'interface utilisateur situé en haut. Rien ne va planter à cause de cela seul. – Christian

0

Vous devez ajouter les boutons dans le délégué/méthode qui analyse les données JSON. Ne pas oublier d'ajouter les boutons créés à votre vue:

[containerView addSubview:button]; 
Questions connexes