Charger un UITableView dans une cellulle

PierrePierre Membre
mai 2010 modifié dans Vos applications #1
Bonjour à  tous,

L'application que je suis en train de développer charge, depuis un flux XML, un UITableView qui contient des éléments (vue A). Chaque élément est cliquable et ouvre une fenêtre (vue B) avec des informations détaillées.
Tout ça fonctionne correctement.

Maintenant j'aimerais charger un UITableView dans une partie de la vue B (50% de la surface environ). Cet UITableView doit contenir des éléments, chargé à  partir d'un second flux XML appelé au moment du chargement de la vue.

Je n'arrive pas à  charger les informations dans le second UITableView.

Je ne sait pas comment organiser mes fichiers (j'ai créé un ViewController à  part pour l'UITableView de la vue B) et je n'arrive pas à  lancer l'appel au second flux.

J'espère que ce n'est pas trop confus, si jamais dites le moi et je ré-expliquerais.

Merci d'avance pour votre aide,

Pierre

Réponses

  • PierrePierre Membre
    22:13 modifié #2
    (Re)Bonjour, comme j'ai trouvé la réponse je me permet de la poster ici cela pourra aider d'autres personnes :

    Récapitulatif de ce que je cherche à  faire : ma vue B à  une classe BViewController qui lui permet d'afficher des informations dans des "UILabel".
    Je souhaite afficher aussi des informations dans un UITableView (une liste d'information C dépendant d'un B) (chaque B peut avoir : zéro, un ou plusieurs C, un C n'a qu'un parent B).

    Les informations C doivent être récupérées directement via un flux XML et ne sont chargées qu'au moment ou l'on charge le détail d'un B.

    Mon BViewController contient donc :
    - (void)viewDidLoad {<br />	[super viewDidLoad];<br />	<br />	...<br />	//Chargement des réponses.<br />	CViewController *C = [CViewController alloc];<br />	[C viewDidLoad:unB.B_id];<br />	tableauC = [C loadC];<br />}
    


    Qui appelle donc la classe CViewController ; cette classe va récupérer l'information (envoie d'un appel à  l'API avec authentification, récupération de la réponse et renvoi (méthode "load") d'un tableau contenant les informations demandé (tableau d'objet de type C).

    Dans le fichier BControllerView.m, à  la suite de la méthode "viewDidLoad", j'ai :

    <br />#pragma mark Table view methods<br /><br />- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {<br />&nbsp; &nbsp; return 1;<br />}<br /><br />// Customize the number of rows in the table view.<br />- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {<br />&nbsp; &nbsp; return [tableauC count];<br />}<br /><br />// Customize the appearance of table view cells.<br />- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {<br />	<br />&nbsp; &nbsp; static NSString *CellIdentifier = @&quot;Cell&quot;;<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];<br />&nbsp; &nbsp; if (cell == nil) {<br />&nbsp; &nbsp; &nbsp; &nbsp; cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; <br />	NSString *ligneTableau = [NSString stringWithFormat:@&quot;%@&quot;, [[tableauC objectAtIndex:indexPath.row] answer_id]];<br />	cell.textLabel.text = ligneTableau;<br />	<br />&nbsp; &nbsp; return cell;<br />}<br />
    


    Dans interface builder j'ajoute un élément de type UITableView à  ma vue. Je le sélectionne et je relie le "dataSource" et le "delegate" à  "File's Owner".

    Et ça marche ! J'ai mis quelques heures à  comprendre comment faire et à  tout ajuster mais maintenant ça marche !

    Si vous pensez qu'on peut faire : mieux, plus simple, plus propre, autrement, n'hésitez pas à  me le dire je suis là  pour apprendre. ;)

    A bientôt,
    Pierre
Connectez-vous ou Inscrivez-vous pour répondre.