title: Xcode: Problem with section in tableview
body: <p>i'm beginner in coding in Xcode.
  What i want to get is a tableview load from plist with section.
  And my problem is to place correctly row in my section.</p>
  
  <p>In my plist, i've the name of my section in each entries, but i don't know how to get these information. So i add manualy by code the name of my two section.</p>
  
  <p>my plist look like this :</p>
  
  <pre><code>&lt;dict&gt;
      &lt;key&gt;Root&lt;/key&gt;
      &lt;array&gt;
          &lt;dict&gt;
              &lt;key&gt;DESCRIPTION&lt;/key&gt;
              &lt;string&gt;Robe ponctuée de petites tâches sombres plus ou moins rondes et pleines tel que l&amp;apos;on retrouve chez le guépard&lt;/string&gt;
              &lt;key&gt;TITLE&lt;/key&gt;
              &lt;string&gt;Spotted&lt;/string&gt;
              &lt;key&gt;IMAGE&lt;/key&gt;
              &lt;string&gt;&lt;/string&gt;
              &lt;key&gt;MINI&lt;/key&gt;
              &lt;string&gt;spotted.png&lt;/string&gt;
              &lt;key&gt;CAT&lt;/key&gt;
              &lt;string&gt;MOTIFS&lt;/string&gt;
          &lt;/dict&gt;
          &lt;dict&gt;
              &lt;key&gt;DESCRIPTION&lt;/key&gt;
              &lt;string&gt;Robe ponctuée de taches plutôt rondes offrant deux tons contrastants. Le centre de celles-ci se voulant plus clair et le pourtour plus sombre. On appelle rosette ouverte une tâche qui n&amp;apos;est pas totalement cerclée par le pourtour plus foncé et rappelant la forme d&amp;apos;un croissant de lune. &lt;/string&gt;
              &lt;key&gt;TITLE&lt;/key&gt;
              &lt;string&gt;Rosettes ouvertes ou demi-lunes&lt;/string&gt;
              &lt;key&gt;IMAGE&lt;/key&gt;
              &lt;string&gt;&lt;/string&gt;
              &lt;key&gt;MINI&lt;/key&gt;
              &lt;string&gt;roset-ouv.png&lt;/string&gt;
              &lt;key&gt;CAT&lt;/key&gt;
              &lt;string&gt;MOTIFS&lt;/string&gt;
          &lt;/dict&gt;
  </code></pre>
  
  <p>and here is my rootcontroller.m</p>
  
  <pre><code>//  RootViewController.m
  //  FichesRaces
  //
  //  Created by a3116b on 28/05/11.
  //  Copyright 2011 __MyCompanyName__. All rights reserved.
  //
  
  #import "RootViewController.h"
  #import "FichesRacesAppDelegate.h"
  #import "CatsList.h"
  #import "DetailViewController.h"
  #import "NewsCustomCell.h"
  #import "InfoViewController.h"
  
  @implementation RootViewController
  @synthesize tabWebSites;
  
  - (void)viewDidLoad {
      [super viewDidLoad];
  
  
  
  
  
      // Charger le fichier .plist dans un tableau que l'on appelera  arrayFromFile
      NSString *path = [[NSBundle mainBundle] pathForResource:@"cats" ofType:@"plist"];
      NSDictionary *dictFromFile = [[NSDictionary alloc] initWithContentsOfFile:path];
      NSArray *arrayFromFile = [dictFromFile objectForKey:@"Root"];
  
  
  
  
      // Créons un tableau temporaire que nous allons remplir avec un objet Website par NSDictionnary contenu dans le fichier .plist
      // Notez l'utilisation de NSEnumerator pour parcourir un tableau
      NSMutableArray *websitesToAdd = [[NSMutableArray alloc] init];
      NSEnumerator *enumerator = [arrayFromFile objectEnumerator];
      NSDictionary *anObject;
      while ((anObject = [enumerator nextObject])) {
          CatsList *cl = [[CatsList alloc] initWithDictionaryFromPlist: anObject];
          [websitesToAdd addObject: cl];
  
          [cl release];
      }
  
      // Remplir la propriété tabWebSites avec le contenu du NSMutableArray précédent
      self.tabWebSites = [NSArray arrayWithArray:websitesToAdd];
  
      // Gestion de la mémoire : pour chaque alloc, n'oubliez pas le release qui va avec !
      [websitesToAdd release];
      [arrayFromFile release];
  }
  
  
  
  
  - (void)viewWillAppear:(BOOL)animated
  {
      [super viewWillAppear:animated];
  
  
  }
  
  - (void)viewDidAppear:(BOOL)animated
  {
      [super viewDidAppear:animated];
  }
  
  - (void)viewWillDisappear:(BOOL)animated
  {
      [super viewWillDisappear:animated];
  }
  
  - (void)viewDidDisappear:(BOOL)animated
  {
      [super viewDidDisappear:animated];
  }
  
  
  
  // définir hauteur cellule
  
  - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *) indexPath {
  
      return 80;
  }
  
  
  
  // Customize the number of sections in the table view.
  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
      // On n'a besoin que d'une section pour nos sites Internet
      return 2;
  }
  
  
  
  //- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
   //   NSArray *sectionTitles =  [[NSArray alloc] 
     //                            initWithObjects:@"Les Motifs", @"Les Couleurs", nil];
    //  return sectionTitles;
  //}
  
  
  
  
  - (NSString *)tableView:(UITableView *)tableView 
  titleForHeaderInSection:(NSInteger)section
  {
  
  
      if ( section == 0 ) return @"Les Motifs";
      if ( section == 1 ) return @"Les Couleurs";
      return @"Other";
  }
  
  
  
  - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
      // Nous ne tenons pas compte du numéro de section puisqu'il n'y en a qu'une
      // Dans cette unique section il y a tous les éléments du tableau, on retourne donc le nombre
     // return [self.tabWebSites count];
  
  
      if ( section == 0 ) return 5;
      if ( section == 1 ) return 14;
          return 0;
  
  }
  
  // Customize the appearance of table view cells.
  - (UITableViewCell *)tableView:(UITableView *)tableView 
           cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  
      static NSString *CellIdentifier = @"NewsCustomCellIdentifier";
      NewsCustomCell *cell = (NewsCustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
      if(cell==nil) {
          NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"NewsCustomCell" owner:self options:nil];
          for (id oneObject in nib) {
              if ([oneObject isKindOfClass:[NewsCustomCell class]]) 
                  cell = (NewsCustomCell *)oneObject;
          }
      }    
  
  
  
      // determine the correct row.
      // it will be restarted from 0 every time, and as
      // we're just loading in from one array, we need to
      // offset it by the right amount depending on the section.
      int theRow = indexPath.row;
      if ( indexPath.section == 1 ) theRow += 6;
      if ( indexPath.section == 2 ) theRow += 19;
  
  
  
      // On récupère l'objet Website qui correspon à la ligne que l'on souhaite afficher
      CatsList *cl = [self.tabWebSites objectAtIndex:indexPath.row];
  
      // On configure la cellule avec le titre du site et sa description
      cell.textLabel.text = cl.TITLE;
      cell.detailTextLabel.text = cl.DESCRIPTION;
  
      UIImage *img = [UIImage imageNamed:cl.MINI];    
      cell.imageView.image = img;
  
      //important ajouter signalisation sinon APP REFUSE
  
      cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
  
  
  
      // On renvoie la cellule configurée pour l'affichage
      return cell;
  }
  
  
  
  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
  
  
      DetailViewController *detailVC = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
      detailVC.CL = [self.tabWebSites objectAtIndex:indexPath.row];
  
      [self.navigationController pushViewController:detailVC animated:YES];
      [detailVC release];
  
  
  
  }
  - (void)didReceiveMemoryWarning
  {
      // Releases the view if it doesn't have a superview.
      [super didReceiveMemoryWarning];
  
      // Relinquish ownership any cached data, images, etc that aren't in use.
  }
  
  - (void)viewDidUnload
  {
      [super viewDidUnload];
  
      // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
      // For example: self.myOutlet = nil;
  }
  
  - (void)dealloc
  {
          [super dealloc];
  }
  
  @end
  </code></pre>
  
  <p>thanks for your very useful help</p>