2011-03-09 4 views
0

je besoin de vos conseils pour résoudre ce problème:Iphone: Peuplement UITableView ou CustomCells de NSMutableDictionary

J'analyse un fichier XML et puting les résultats dans NSMutableDictionarys que je mets en NSMutableArray:

Le NSMutableArray avec le Les dictionnaires ressemblent à ceci:

Res: (
    { 
    adresse = "Wielandg 36"; 
    email = "[email protected]"; 
    latitude = "47.063065712289"; 
    longitude = "15.439759954196"; 
    ordiname = "Kleintierpraxis Jakomini Dipl Tzt Riegelnegg Gerfried"; 
    ort = Graz; 
    plz = 8010; 
    tel = "+43316830438"; 
    tierarztid = 3; 
    web = "http://www.tierarzt-riegelnegg.at"; 
}, 
    { 
    adresse = "Rechbauerstr 3"; 
    email = "[email protected]"; 
    fax = "+43316321156"; 
    latitude = "47.070320493663"; 
    longitude = "15.448505434137"; 
    ordiname = "KLEINTIERAMBULATORIUM - Dr. Simon Glantschnig"; 
    ort = Graz; 
    plz = 8010; 
    tel = "+43316321156"; 
    tierarztid = 2; 
    web = "http://www.kleintierambulatorium.at"; 
}, 
    { 
    adresse = "Humboldtstr 7"; 
    latitude = "47.079379100630"; 
    longitude = "15.440064023548"; 
    ordiname = "Bernhart Barbara Dr"; 
    ort = Graz; 
    plz = 8010; 
    tel = "+43316684912"; 
    tierarztid = 4; 
} 

Eh bien, cette partie fonctionne très bien! Maintenant, je mets "ordiname" dans un UITableView, et quand l'utilisateur clique sur le nom, j'ouvre un "DetailView" où je veux montrer les résultats du dictionnaire dans un UITableView ou CustomCells - NSLog pour que cela fonctionne bien - je peux voir l'ensemble du dictionnaire sélectionné dans le détail. La présentation dans TableView ou CustomCells doit être faite dynamiquement, car toutes les entrées possibles ne doivent pas être remplies (par exemple: le fax n'est pas obligatoire).

Comment puis-je y parvenir? L'ordre du NSMutableDictionary est toujours le même ...

Merci pour toute aide et conseil!

BR,

Stefan

Répondre

0

Tout ce que vous avez besoin est d'avoir le DetailView adopter le protocole UITableViewDataSource et ajoutez les méthodes suivantes,

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [myDictionary count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *name = [[myDictionary allKeys] objectAtIndex: indexPath.row]; 
    NSString *value = [myDictionary objectForKey:name]; 
    UITableViewCell *cell = [table dequeReusableCellWithItentifier:@"MyCell"]; 
    if(!cell) { 
     //create cell 
    } 
    //set the name and value 
    cell.textLabel.text = [NSString stringWithFormat:@"%@:%@", name, value]; 
    return cell; 
} 
+0

le seul problème est cependant que le [MyDictionary AllKeys] crée des NSArrays plus récents. Bien qu'ils ne fuient pas, c'est toujours quelque chose à savoir. – govi

+0

Je suis impressionné! Merci beaucoup! Maintenant, une question courte: que feriez-vous pour afficher des images personnalisées sur chaque ligne? BR, Stefan – Bosstone

+0

http://adeem.me/blog/2009/05/30/iphone-sdk-tutorial-part-6-creating-custom-uitableviewcell-using-interface-builder-uitableview/ celui-ci semble l'expliquer très bien. mais si vous rencontrez des problèmes, vous devrez peut-être créer une nouvelle question pour ce sujet hors sujet sur celui-ci. – govi

Questions connexes