UITableview avec section

2»

Réponses

  • Salut Eric voila mon code


    <br />
    @synthesize movies,activityIndicatorView,sections;<br />
    - (id)initWithStyle:(UITableViewStyle)style<br />
    {<br />
        self = [super initWithStyle:style];<br />
        if (self) {<br />
    	    // Custom initialization<br />
        }<br />
        return self;<br />
    }<br />
    - (void)viewDidLoad<br />
    {<br />
        [super viewDidLoad];<br />
        self.movies = [[NSDictionary alloc] init];<br />
        self.navigationItem.title = @&quot;Ma page&quot;;<br />
     <br />
        // Setting Up Activity Indicator View<br />
        self.activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];<br />
        self.activityIndicatorView.hidesWhenStopped = YES;<br />
        self.activityIndicatorView.center = self.view.center;<br />
        [self.view addSubview:self.activityIndicatorView];<br />
        [self.activityIndicatorView startAnimating];<br />
        self.sections = [[NSDictionary alloc] init];<br />
       <br />
      <br />
        [self chargerLesDonnees];<br />
        [self listerLesDonnees];<br />
       <br />
    }<br />
       <br />
    <br />
    - (void)viewDidUnload<br />
    {<br />
        [super viewDidUnload];<br />
        // Release any retained subviews of the main view.<br />
        // e.g. self.myOutlet = nil;<br />
    }<br />
    <br />
    -(void)chargerLesDonnees {<br />
        NSURL *url = [[NSURL alloc] initWithString:@&quot;http://montgomery.com/json/municipal.php?&amp;json_output&quot;];<br />
        NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];<br />
       <br />
        AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {<br />
    	    self.movies = JSON ;<br />
    	    [self.tableView setHidden:NO];<br />
    	    [self.tableView reloadData];<br />
    	    [self.activityIndicatorView stopAnimating];<br />
    	    /*<br />
    		<br />
    		<br />
    		 */<br />
        } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {<br />
    	    NSLog(@&quot;Request Failed with Error: %@, %@&quot;, error, error.userInfo);<br />
        }];<br />
       <br />
        [operation start];<br />
    }<br />
    <br />
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation<br />
    {<br />
        return (interfaceOrientation == UIInterfaceOrientationPortrait);<br />
    }<br />
    #pragma mark - Table view data source<br />
    -(void)listerLesDonnees {<br />
       NSLog(@&quot;%@&quot;,self.movies );<br />
       <br />
        NSMutableDictionary* sectionsDict = [NSMutableDictionary dictionary];<br />
        for(NSDictionary * movie in self.movies)<br />
    	   <br />
        {<br />
    	   <br />
    	    // id sectionIDKey = [[NSNumber numberWithInt:[movie objectForKey:@&quot;categorie&quot;]intValue]];<br />
    	    id sectionIDKey = [NSNumber numberWithInt:[[movie objectForKey:@&quot;categorie&quot;]intValue]];<br />
    	   <br />
    	   <br />
    	   <br />
    	    NSMutableArray* listOfElementsOfThisSectionID = [sectionsDict objectForKey:sectionIDKey];<br />
    	    //NSLog(@&quot;%@&quot;,listOfElementsOfThisSectionID );<br />
    	    if (&#33;listOfElementsOfThisSectionID)<br />
    	    {<br />
    		   <br />
    		    listOfElementsOfThisSectionID = [NSMutableArray array];<br />
    		   <br />
    		    [sectionsDict setObject:listOfElementsOfThisSectionID forKey:sectionIDKey];<br />
    		    NSLog(@&quot;%@&quot;, listOfElementsOfThisSectionID);<br />
    	    }<br />
    	   <br />
    	    [listOfElementsOfThisSectionID addObject:movie];<br />
    	    //NSLog(@&quot;%@&quot;, listOfElementsOfThisSectionID);<br />
        }<br />
       <br />
        self.sections = [NSDictionary dictionaryWithDictionary:sectionsDict];<br />
        // NSLog(@&quot;%@&quot;, sections);<br />
       <br />
       <br />
    }<br />
    <br />
    -(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{<br />
       <br />
        return 130;<br />
       <br />
    }<br />
    <br />
    <br />
    -(NSInteger)numberOfSectionsForTableView:(UITableView*)tableView<br />
    {<br />
    return self.sections.allKeys.count;<br />
    	<br />
    }<br />
    <br />
    - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {<br />
       <br />
       <br />
        switch (section) {<br />
    	    case 0:<br />
    		    return @&quot;section1&quot;;<br />
    		    break;<br />
    		   <br />
    	    case 1:<br />
    		    return @&quot;section2&quot;;<br />
    		    break;<br />
    		   <br />
    	    case 2:<br />
    		    return @&quot;section3&quot;;<br />
    		    break;<br />
    		   <br />
    	    case 3:<br />
    		    return @&quot;section4&quot;;<br />
    		    break;<br />
    		   <br />
    	    case 4:<br />
    		    return @&quot;section5&quot;;<br />
    		    break;<br />
    		   <br />
    	    default:<br />
    		    break;<br />
        }<br />
       <br />
        return nil;<br />
    }<br />
    -(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(int)section<br />
    {<br />
      <br />
        NSArray* listOfAllElementsInSection = [self.sections objectForKey: [NSNumber numberWithInt:section] ];<br />
        return listOfAllElementsInSection.count;<br />
        NSLog(@&quot;%d&quot;,listOfAllElementsInSection.count);<br />
    }<br />
    -(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath<br />
    {<br />
      <br />
        NSArray* listOfAllElementsInSection = [self.sections objectForKey: [NSNumber numberWithInt:indexPath.section] ];<br />
    <br />
    <br />
        static NSString *CellIdentifier = @&quot;MunicipalCell&quot;;<br />
       <br />
        MunicipalCell *cell = (MunicipalCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];<br />
        if (cell == nil) {<br />
    	   <br />
    	    NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@&quot;MunicipalCell&quot; owner:self options:nil];<br />
    	   <br />
    	    for (id oneObject in xib) {<br />
    		   <br />
    		    if ([oneObject isKindOfClass:[MunicipalCell class]]) {<br />
    			    cell = (MunicipalCell *)oneObject;<br />
    		    }<br />
    	    }<br />
        }<br />
       <br />
     <br />
       <br />
    	 NSDictionary *movie = [listOfAllElementsInSection objectAtIndex:indexPath.row];<br />
       <br />
        cell.contentView.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@&quot;eluBg.png&quot;]];<br />
        cell.nom.text = [movie objectForKey:@&quot;nom&quot;];<br />
        cell.foncion.text = [movie objectForKey:@&quot;fonction&quot;];<br />
        cell.selectionStyle = UITableViewCellSelectionStyleNone;<br />
       <br />
        NSURL *url = [[NSURL alloc] initWithString:[movie objectForKey:@&quot;url_image&quot;]];<br />
        [cell.Image setImageWithURL:url placeholderImage:[UIImage imageNamed:@&quot;placeholder&quot;]];<br />
       <br />
        return cell;<br />
    }<br />
    




    merci encore
  • Je ne connais pas l'utilisation des requêtes JSON mais ta ligne "self.movies = JSON ;" me semble bizarre.



    J'ose espérer que tu as vérifié que ton dictionnaire est bien rempli avec cette commande.
  • salut eric



    oui j ai deja verifier il est bien rempli



    c'est apres que je n arrive pas a le [font="helvetica, arial, sans-serif"]récupérer .[/font]

    [font=helvetica, arial, sans-serif]mais quand je suis dans les fonctions load data comme [/font][font=helvetica, arial, sans-serif]
    [/size][/font][/color]<br />
    [color=#282828][font=helvetica, arial, sans-serif][size=3]-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath<br />
    
    [/font] [font=helvetica, arial, sans-serif]je le recupere bien.[/font]



    [font=helvetica, arial, sans-serif]enfaite j ai deja utulisé mon tableau avec une section et ca fonctionne tres bien [/font]



    [font=helvetica, arial, sans-serif]merci pour ta réponse eric [/font]
  • je n'ai toujours pas trouvé mon problème





    help please



    merci
  • 'montgomery' a écrit:


    salut eric



    oui j ai deja verifier il est bien rempli



    c'est apres que je n arrive pas a le [font=helvetica, arial, sans-serif]récupérer .[/font]




    Après quoi ? Récupérer de quelle façon ?


    'montgomery' a écrit:


    [font=helvetica, arial, sans-serif]mais quand je suis dans les fonctions load data comme [/font][font=helvetica, arial, sans-serif]
    [/size][/font][/color]<br />
    [color=#282828][font=helvetica, arial, sans-serif][size=3]-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath<br />
    
    [/font] [font=helvetica, arial, sans-serif]je le recupere bien.[/font]




    Donc ça fonctionne bien alors !


    'montgomery' a écrit:


    [font=helvetica, arial, sans-serif]enfaite j ai deja utulisé mon tableau avec une section et ca fonctionne tres bien [/font]



    [font=helvetica, arial, sans-serif]merci pour ta réponse eric [/font]




    Tout ça n'est pas très clair. Ca marche ? Ca marche pas ?

    Tu devrai utiliser le debugger qui va te permettre, entre autre, de suivre pas à  pas l'exécution de ton programme.

    À ce stade c'est, amha, la meilleure aide que tu puisse avoir.
  • de retour de vacance



    je relance mon sujet :



    j ai donc changer la manier de récupérer mes données.



    le problème vient de cette fonction :
    <br />
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section<br />
    {<br />
       <br />
    NSArray* listOfAllElementsInSection = [self.sections objectForKey: [NSNumber numberWithInt:section] ];<br />
        NSLog(@&quot;%@&quot;, listOfAllElementsInSection);<br />
        return listOfAllElementsInSection.count;<br />
    }<br />
    




    mon NSLog me renvoi null
  • AliGatorAliGator Membre, Modérateur
    Et si tu log self.sections ?
  • ben j ai bien mon tableau avec les les elements qui se presente ainsi :
    <br />
    1 =	 (<br />
    			    {<br />
    		    categorie = 1;<br />
    		   <br />
    		    id = 14;<br />
    		    nom = &quot;toto&quot;;<br />
    	    }<br />
        );<br />
    2 =	 (<br />
    			    {<br />
    		    categorie = 2;<br />
    		   <br />
    		    id = 11;<br />
    		    nom = &quot;tata&quot;;<br />
    	    }<br />
    	  {<br />
    		    categorie = 2;<br />
    		   <br />
    		    id = 10;<br />
    		    nom = &quot;tati&quot;;<br />
    	    }<br />
        );<br />
    3 =	 (<br />
    			    {<br />
    		    categorie = 3;<br />
    		   <br />
    		    id = 9;<br />
    		    nom = &quot;toti&quot;;<br />
    	    }<br />
    	  {<br />
    		    categorie = 3;<br />
    		   <br />
    		    id = 8;<br />
    		    nom = &quot;tito&quot;;<br />
    	    }<br />
        );<br />
    




    merci
  • Ce que je vois dans ton code c'est que tu appel successivement



    /size][/font][/color][color=#000088][font=monospace][size=3]self[/size][/font][/color][color=#000000][font=monospace][size=3] chargerLesDonnees[/size][/font][/color][color=#666600][font=monospace][size=3;



    /size][/font][/color][color=#000088][font=monospace][size=3]self[/size][/font][/color][color=#000000][font=monospace][size=3] listerLesDonnees[/size][/font][/color][color=#666600][font=monospace][size=3;



    Es tu sur que les données sont chargé quand tu les listes? Car récuperer des données d'internet peut être long

    Ensuite tu ne reload pas ton tableView si je ne m'abuse du coup es tu sur qu'il soit rappelé quand tes données sont chargées et triées?



    De plus tu fais un [operation start] il doit surement appelé une methode déléguée que je ne vois pas (tu ne l'as peut être tout simplement pas copié-collé)



    Enfin tout ça pour dire qu'il en manque encore un certain bout avant de pouvoir réellement cerner ton problème.
  • salut Nassatya



    merci pour ton aide .



    enfaite comme je le dis dans mon avant dernier post j ai changer la maniere de récupérer les donnés .

    et comme je disais à  AliGator je recupere bien les données dans
    <br />
    self.sections<br />
    




    merci encore
  • NasatyaNasatya Membre
    octobre 2012 modifié #42
    Oui pardon j'ai mal lu ton block
  • ce n'est pas grave



    merci encore pour ton aide
Connectez-vous ou Inscrivez-vous pour répondre.