Master Detail application

Bonjour,


 


Je suis novice et surtout autodidacte dans le développement d'application d'application Iphone/Ipad alors svp prenez bien le temps de détailler vos réponses afin que je puisse tout assimiler  ::)


 


Voici ma question:


 


j'ai commencer un projet d'application sur le modél d'un masterDetail Application, j'ai rempli ma vue Master avec ma liste de titre de sujet et une image s'y rapportant, j'aimerais afficher maintenant le texte s'y rapportant dans le DatilView et c'est là  que je bloque. j'ai pensé à  mettre un label remplissant presque toute la vue pour afficher le texte mais je sais pas si cela est la bonne façon de faire. J'ai crée un NsArray avec les titre du sujets et l'image( dans l'Appdelegate) s'y rapportant et je voulais inclure dans ce tableau les textes en question. Maintenant je sais pas si c'est le bon chemin à  suivre ou si je suis dans le faux?? J'ai essayé sur plusieurs forum et la doc d'apple mais je rame un peu j'avoue.


Alors soyez indulgent et  surtout veuillez m'aiguillez avec un max de détails.


 


Un trés trés grand merci à  vous


Réponses

  • CéroceCéroce Membre, Modérateur

    Salut,


     


    Imaginons que MasterVC possède un NSArray de Voitures. Quand on va toucher la cellule correspondante à  une Voiture, il faudra passer l'objet correspondant à  DetailVC, c'est à  dire lui fournir un pointeur sur cet objet.


     


    Tout d'abord, on déclare le pointeur dans DetailVC.h:



    @property (nonatomic, weak) Voiture *voiture;

    Quand une cellule est touchée dans le MasterVC, c'est une méthode de UITableViewDelegate qui est appelée (MasterVC.m):


     




    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
    Voiture *voitureSelectionnee = [self.voitures objectAtIndex:indexPath.row]; // 1

    DetailViewController *detailVC = [[DetailViewController alloc] initWithNibName:@DetailViewController bundle:nil]; // 2
    detailVC.voiture = voitureSelectionnee; // 3
    [self.navigationController pushViewController:detailVC animated:YES]; // 4
    }

    1) On récupère dans la liste un pointeur sur la Voiture correspondant au numéro de la ligne sélectionnée.


    2) On crée un instance de DetailViewController.


    3) On lui passe la Voiture.


    4) On empile le DetailViewController pour l'afficher.


     


    À partir de là , DetailViewController possède une Voiture et peut l'afficher.


  • LarmeLarme Membre
    Topic de présentation ?

    On aimerait en savoir plus sur toi, notamment ton background. Car être novice en dév' iOS ne veut pas dire novice en dév' tout court : ex. Avoir fait du Java, C# ou tout autre langage orienté objet, voire du C, c'est déjà  un sacré bagage...
  • Salut,


     


    Merci pour cette rapide réponse, je vais recommencer mon projet depuis le debut pour essayer votre methode, mais j'ai encore une question si vous voulez bien, pour le texte que je veux mettre dans le Detail View vous me conseiller de le taper entièrement dans un tableaux du style  NSdictionary avec les image et les titres du sujets devant s'afficher dans la Master View ou bien recréer un autre tableau et le mettre en rapport avec la vue Master?


     


    Un trés grand merci à  vous en tout cas et bonne journée


  • Bonjour Larme, voilà  désolé je vien de remplir mon profil. Comme j'ai dit plus haut je suis novice dans la programmation IOS mais j'ai fait un peu de C dans ma jeunesse à  l'école et un peu de linux. 


  • CéroceCéroce Membre, Modérateur


    Salut,


     


    Merci pour cette rapide réponse, je vais recommencer mon projet depuis le debut pour essayer votre methode, mais j'ai encore une question si vous voulez bien, pour le texte que je veux mettre dans le Detail View vous me conseiller de le taper entièrement dans un tableaux du style  NSdictionary avec les image et les titres du sujets devant s'afficher dans la Master View ou bien recréer un autre tableau et le mettre en rapport avec la vue Master?


     


    Un trés grand merci à  vous en tout cas et bonne journée




    Euh... un NSDictionary n'est pas un tableau. C'est un dictionnaire, c'est à  dire qu'à  une clef (en général une NSString) est associé un objet.


    On peut imaginer utiliser une liste (NSMutableArray) de dictionnaires, avec un dictionnaire correspondant à  un sujet.


    Personnellement, pour stocker le titre et l'image, je créerais plutôt une classe Sujet, ce qui me permettra d'y ajouter les traitements.

  • OK  Céroce je vais essayé de faire cela , mais pour le texte dans le Detail View tu me conseillerai de faire quoi? je tape tout le texte en rapport avec le sujet dans un tableau ou bien y'a une autre solution, plus facile et logique  à  faire??


     


     


    Merci vraiment beaucoup pour ton aide


  • CéroceCéroce Membre, Modérateur

    Au final, le DetailVC va afficher du texte dans un UILabel ou une UITextView, non? Il faudra le prendre dans l'objet Sujet.


  • Am_MeAm_Me Membre

    J'aurai une question pour les gens qui ont deja touche au Java 


     


    Le NSDictonnary ca équivaut a une HashMap en Java ?


  • CéroceCéroce Membre, Modérateur

    Oui.


    NSDictionary est bien implémentée sous la forme d'une table de hachage.


     


    Je trouve l'appellation Java étrange parce qu'elle confond l'implémentation et la fonction.




  • Au final, le DetailVC va afficher du texte dans un UILabel ou une UITextView, non? Il faudra le prendre dans l'objet Sujet.




     Oui c'est bien ça Céroce, je m'en vais recommencer mon projet pour essayer ce que tu m'explique. J'avais déjà  crée une classe où j'avais mis les images et les titres de sujets  jusque la pas de soucie c'est pour la suite que je bloque. je continue et on verra bien

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