2010-10-08 20 views
0

Je suis en train de créer un UITableView avec des sections extensibles/rétractables.UITableView extensible dynamique avec sections

Je reçois des données sur Internet au format JSON, le stocker dans des tableaux comme ceci:

{Section 1 {données s1 1, données s1 2, ...}, Section 2 {données s2 1, s2 données 2, et ainsi de suite}}

Les sections peuvent être des lettres alphabétiques, le numéro de l'année ou autre.

REALISER vue de table en-têtes comme ceci:

GTHeaderView *header = [GTHeaderView headerViewWithTitle:[NSString stringWithFormat:@"%@", myArray.SectionValue]]; 
[header.button addTarget:self action:@selector(toggleSection) forControlEvents:UIControlEventTouchUpInside]; 

Cela est bien, mais dans ma méthode « toggleSection », je ne peux pas trouver un moyen de connaître la section de sorcière ont été touchés à effondrées/étendu. Je sais que je ne peux pas envoyer de paramètres dans le sélecteur ... quelle solution pensez-vous que cela conviendrait à mes besoins?

Merci d'avance!

Répondre

1

Vous pouvez écrire votre méthode toggleSection comme:

- (void)toggleSection:(id)sender 
{ 
    // send the sender object a message to find out the section number here... 
} 

et bien sûr changer votre addTarget ligne pour spécifier cette méthode toggleSection a maintenant un paramètre:

[header.button addTarget:self action:@selector(toggleSection:) forControlEvents:UIControlEventTouchUpInside]; 
+0

vous remercie de votre réponse, l'expéditeur object me renvoie un UIButton au lieu d'un GTHeaderView. Donc, je ne peux pas obtenir des informations comme l'étiquette de la section. Une idée ? – Dough

+0

Maintenant, je vois à quoi sert cette classe 'GTHeaderView', j'ai trouvé ce lien: http://cocoaminded.com/2010/02/06/expandingcollapsing-uitableview-sections/ - il montre le cas simple où vous avez des méthodes séparées pour chaque section; ce serait bien si vous avez un nombre fixe ou petit de sections je suppose. – petert

+0

J'ai réussi à savoir que la section sorcière est touchée en définissant la balise dans UIButton de GTHeaderView comme ceci: header.button.tag = i; fonctionne bien, merci beaucoup !! – Dough