2011-07-24 4 views
0

私は3つのセクション(Motif - Couleur - その他)でセクション化されたテーブルビューを持っています テーブルビューのデータはplist魔女この私のセクション化されたテーブルビューの右側の行に良好なデータを表示する問題

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>Root</key> 
    <array> 
     <dict> 
      <key>DESCRIPTION</key> 
      <string>Robe ponctuée de petites tâches sombres plus ou moins rondes et pleines tel que l&apos;on retrouve chez le guépard</string> 
      <key>TITLE</key> 
      <string>Spotted</string> 
      <key>IMAGE</key> 
      <string></string> 
      <key>MINI</key> 
      <string>spotted.png</string> 
      <key>CAT</key> 
      <string>MOTIFS</string> 
     </dict> 

     <dict> 
      <key>DESCRIPTION</key> 
      <string>La robe du bengal dit &quot;Brown&quot; est d&apos;une infinie richesse. Loin de se limiter ou brun, elle passe également par des tons de roux vifs de blonds dorés . Les yeux sont jaunes dorés ou verts. Bien connu du public, les bengals bruns sont toujours aussi populaires et recherchés.</string> 
      <key>TITLE</key> 
      <string>Brown</string> 
      <key>IMAGE</key> 
      <string></string> 
      <key>MINI</key> 
      <string></string> 
      <key>CAT</key> 
      <string>COULEURS</string> 
     </dict> 

セクションの名前は私のplistで店ですが、現時点では私はこのPLISTに名前(CATモチーフ)を選んで、私のヘッダーに表示する方法がわからないように見えますセクション化されたテーブルビュー。 それから、それは違ったコードで動作するように見えますが、セクションの名前はplistのものではありません。

crasy私を作った問題の一つと私は2番目のセクション、及び第三項の3に4行、9を表示したい最初のセクションの2番目の1、最も重要な、それ。 問題は、各セクションの行数が適切であるが、セクションの良好なデータではなく、適切にセクション化された3つのセクションを持つアプリケーションが適切なセクション化テーブルビューを表示することです。 実際には、 4のデータが含まれていますが、2行目にはデータ1-2-3-4-5 .... が含まれています。データ5-6-7を表示するものは何ですか....

私の問題はです。 は、ここに私のrootviewcontroller.mであるあなたの非常に便利なの助けを

// 
// RootViewController.m 
// FichesRaces 
// 
// Created by a3116b on 28/05/11. 
// Copyright 2011 __MyCompanyName__. All rights reserved. 
// 

#import "RootViewController.h" 
#import "CatsList.h" 
#import "DetailViewController.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]; 
} 



- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { 

    if (section == 0) return @"Les Motifs"; 
    if (section == 1) return @"Les Couleurs"; 
    if (section == 2) return @"Bon à Savoir"; 

    return @""; 

    // return [sectionHeaders objectAtIndex:section]; 
} 






// Customize the number of sections in the table view. 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return 3; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    switch (section) { 
     case 0: 
      return 4; 
      break; 

     case 1: 
      return 13; 
      break; 

     default: 
      return 3; 
      break; 
    } 

    } 







// Customize the appearance of table view cells. 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"Cell"; 
    if (indexPath.section == 2) { 
     CellIdentifier = @"cell"; 
    } 
//----------------------------------------------- 

    NSUInteger sectionNumber = [indexPath section]; 
    NSUInteger rowNumber = [indexPath row]; 

    // 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 sectionNumber = indexPath.row; 
    if (sectionNumber == 0) rowNumber = 4; 
    if (sectionNumber == 1) rowNumber = +5; 
    if (sectionNumber == 2) rowNumber = +18; 


//-----------------------------------------------  

    // Les cellules sont mises en cache pour accélérer le traitement, sous l'identifiant "Cell", 
    // on essaie récupère ce modèle de cellule s'il est déjà en cache 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    // Si on n'a pas réussi à sortir une cellule du cache, on crée un nouveau modèle de cellule 
    // et on l'enregistre dans le cache 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 
    } 





    // 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; 


    //important ajouter signalisation sinon APP REFUSE 

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 

    // On renvoie la cellule configurée pour l'affichage 
    return cell; 
} 



- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (indexPath.section == 3) { 
     return nil; 
    } 
    return indexPath; 
} 





- (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 

おかげ

あなたは tableView:cellForRowAtIndexPath:でオフセット行インデックスを格納する rowNumber変数を使用しているが、その後、あなたが何もしていないされているように見えます

答えて

0

その修正された価値を持つ。

編集

私は多分あなたはこの試してみてください見ることができるものから:

CatsList *cl = [self.tabWebSites objectAtIndex:rowNumber]; 
+0

[OK]を、私はその後、何をすべき? – a3116b

+0

私はあなたが私に提案したものを試しました、それは動作しませんでした – a3116b

関連する問題