Sections dans UITableView: Plusieurs rows avec plusieurs sections

Bonjour,


 


J'ai une UITableView avec des sections. Les sections correspondent à  des jours calendriers (des dates), je peux donc avoir un ou plusieurs événements pour une même section soit plusieurs rows pour une seule section...


Quand j'ai uniquement une seul "row" par "section", je peux sans problème afficher ma vue "Détail" mais lorsque j'ai plus d'une row par section, ma vue "Détail" n'est plus synchronisé avec mes rows.


Dois-je utiliser ?


 


NSIndexPath *indexPath = [NSIndexPath indexPathForRow:xxx inSection:indexPath.section];


 


Effectuer une boucle?


 


Pouvez-vous m'aider, me conseiller?


 


Merci d'avance


Réponses

  • AliGatorAliGator Membre, Modérateur
    Va encore falloir sortir la boule de cristal (mais j'ai toujours pas retrouvé la mienne)...


    http://whathaveyoutried.com
  • En effet : pas bien clair ton problème. Quand on entend parler de vue Détail et d'une table view, on imagine qu'il existe deux controllers : un UITableViewController (pour la table view) et un autre controller associé à  ta vue détail. Le passage du premier vers le second s'effectue par sélection d'une ligne de la table view.


    Peu importe qu'il y ait 1 ou plusieurs rows...

  • Oui effectivement j'ai une UITableViewController et une vue EKEventViewController qui est appelée.


     


     
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
     
        EKEventViewController* eventViewController = [[EKEventViewController alloc]init];
        eventViewController.editing = YES; 
        //self._events = mon array contenant tout mes événements de l'agenda (EKEvent)
        eventViewController.event = [self._events objectAtIndex:indexPath.section]; 
        [self.navigationController pushViewController:eventViewController animated:YES];
    }

     


    Ici ça fonctionne parfaitement mais uniquement avec une row par section.


    Si j'ai par exemple 2 rows pour une section, j'affiche pour chaque row la même vue ce qui est normal puisque ma row est à  "0".


    J'aimerai juste connaitre la démarche à  effectuer pour pouvoir parcourir ma section et incrémenter ma row si il y en a plus d'une par section.


    J'espère être plus ou moins clair...  ???


     


    Merci


  • IBimiIBimi Membre
    septembre 2013 modifié #5

    Ok effectivement toujours sélectionner une ligne... ça fonctionne maintenant.


     


    NSInteger rowNumber = 0;
        for (NSInteger i = 0; i < indexPath.section; i++) {
            rowNumber += [self tableView:tableView numberOfRowsInSection:i];
        }
        
        rowNumber += indexPath.row;
       eventViewController.event = [self._events objectAtIndex:rowNumber]; //Je passe ici ma row

     


     


    J'pensais devoir passer ma section en fait mais non!!


    Un grand merci à  vous....... encore une fois!!!


Connectez-vous ou Inscrivez-vous pour répondre.