2010-03-23 7 views
0

J'ai une application qui est une liste de tâches, comme une liste de tâches. L'utilisateur configure les tâches et cela va à la base de données SQLite. La liste est affichée dans une tableview.iPhone: mêmes lignes répétées dans chaque section de UITableview groupée

La table SQL en question se compose d'un ID de tâche int, d'un nom de groupe varchar, d'un nom de tâche varchar, d'un datetime lastcompleted, d'un nextdue datetime, d'un entier de pondération. Je l'ai actuellement en travaillant en créant un tableau de chaque colonne dans la table SQL. Dans la méthode tableView:cellForRowAtIndexPath:, je crée les contrôles pour chaque tâche en liant leurs valeurs au tableau pour chaque colonne.

Je souhaite ajouter des groupes de tâches configurables devant s'afficher en tant que titres de section. J'ai les groupes de tâches à afficher comme en-têtes de section. Mon problème est que tous les rangées de tâches sont répétées dans chaque groupe sous chaque en-tête.

Comment puis-je obtenir les lignes correctes à afficher uniquement sous la section correcte?

Je suis vraiment nouveau à la période de développement et a pris un passe-temps d'essayer de m'enseigner comment développer des applications iphone. Donc, s'il vous plaît, soyez un peu plus détaillé que vous le feriez normalement avec un développeur professionnel. :)

+0

Fermer en double (par l'utilisateur novice) de bien meilleure question: http: //stackoverflow.com/questions/2518947/iphone-repeating -rows-dans-chaque-section-de-groupe-uitableview – TechZen

Répondre

1

Votre problème est que votre modèle de données (dans ce cas vos tableaux) ne reflète pas les sections. À l'heure actuelle, vous renvoyez chaque ligne dans le modèle de données complet pour chaque section.

Le NSIndexPath transmis à tableView:cellForRowAtIndexPath: possède une propriété de ligne et de section. Pour renvoyer les lignes appropriées pour chaque section, vous devez vérifier l'attribut indexPath.section pour voir à quelle section logique appartient la ligne logique avant de remplir la cellule.

Edit:

Vous avez besoin quelque chose comme ceci:

switch (indexPath.section) { 
    case 0: 
     // return row at indexPath.row for this section 
     break; 
    case 1: 
     // return row at indexPath.row for this section 
     break; 

    default: 
     break; 
} 
+0

Je vous ai donné un chèque pour la réponse. Je vais essayer encore et être un peu plus clair cette fois. Je vais inclure le code. –

+0

La nouvelle question est "iPhone: Répétition des lignes dans chaque section de UITableview groupée". Vous avez déjà aidé beaucoup de sorte que vous n'avez pas à passer plus de temps à répondre. Quelqu'un m'a donné un feedback amical sur la création d'une question;), j'ai donc fourni la nouvelle question, avec un peu de chance, je l'espère. Je devrais avoir une meilleure réponse à ce sujet. Merci pour votre aide avec ça! –

+0

3 jours plus tard, personne n'a tenté ma question nouvellement formatée. Je pense que vous mettez le doigt sur la tête, avec le modèle de données ne représentant pas les sections. Supposons, par exemple, que vous ayez une table indexée avec des sections basées sur la première lettre de la valeur de ligne. Auriez-vous besoin de faire 26 requêtes distinctes pour que votre modèle de données représente les sections par ordre alphabétique? Que faire si vous ne connaissez pas le nombre et l'association des sections aux lignes avant l'exécution? –

Questions connexes