Partage
  • Partager sur Facebook
  • Partager sur Twitter

[xCode] TabView depuis Tabbed Application

    8 février 2013 à 11:56:13

    Bonjour, 

    Voilà je viens de finir le livre "Creez des applications..." du site du zéro.

    Je me vois confronté un problème j'ai voulu créer une tabView en parant d'un tabbed Application, le problème c'est que je n'arrive pas à alimenter mon tableau.

    Pourtant j'ai:

    - Ajouter un tabView à ma "First View Controller"

    - dans [superviewDidLoad]

        maListe = [[NSMutableArray alloc] init];
        [maListe addObject:@"test"];
        [maListe addObject:@"test1"];
        [maListe addObject:@"test2"];
        [maListe addObject:@"test3"];
        self.navigationItem.title = @"blahblabal";


    - dans  (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

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

    - et enfin dans (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *MyIdentifier = @"MyIdentifier";
        
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
        
        if (cell == nil)
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier];
        
        // Configuration de la cellule
        NSString *cellValue = [maListe objectAtIndex:indexPath.row];
        cell.textLabel.text = cellValue;
        return cell;
    }

    dans mon mainstoryboard j'ai :

    - mis mon tabview a dînamic prototypes et j'ai bien nommée ma cellule avec l'identifiant "MyIdentifier"
    - Ajouter dans le .h NSMutableArray *maListe; 
    Quelqu'un aurait une idée ? 
    Merci beaucoup


    • Partager sur Facebook
    • Partager sur Twitter
      8 février 2013 à 17:01:12

      Dans la méthode qui renvois le nombre de sections t'as mis combien?

      T'as mis le [self.tableView reloadData] dans le viewDidLoad?

      • Partager sur Facebook
      • Partager sur Twitter
        8 février 2013 à 20:29:58

        Ça vient surement de ton implémentation de ta méthode cellForRowAtIndexPath. La méthode que tu as apprise dans le livre correspond à la manière de le faire dans iOS 5, toi tu code pour iOS 6, donc c'est comme ça que tu dois faire : 

        - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
        {
            return [yourArray count];
        }
        
        - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
        {
            return 1;
        }
        
        - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
        {
            static NSString* reuseID = @"YourIdentifier";
            UITableViewCell *myCell = [tableView dequeueReusableCellWithIdentifier:reuseID forIndexPath:indexPath];
        
            myCell.title.text = @"blablabla";
            
            return customCell;
        }

        Mais comme tu combine un TabBar et un TableView, ta tableView c'est un UITableView, et non un UITableViewController, donc il n'est pas relié direct à ton ViewController. Ainsi, il faut qu'à ton ViewController qui doit etre une subclass de UIViewController, tu ajoutes le delegate UITableViewDelegate et UITableViewDataSource, puis que tu relie ton delegate à ta tableView.

        Voila pour le delegate : 

        @interface ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
        {
            // blabla
        }
        
        // blabla
        • Partager sur Facebook
        • Partager sur Twitter
          9 février 2013 à 12:22:02

          @Coolsinus tu as inversé le nombre de sections et le nombre de cases
          • Partager sur Facebook
          • Partager sur Twitter
            10 février 2013 à 14:04:50

            Ouai c'est juste que le code que j'ai copié-collé de mon projet je fais autant de sections que de cellules, bref ;) Il suffit d'inverser comme tu dis :)
            • Partager sur Facebook
            • Partager sur Twitter

            [xCode] TabView depuis Tabbed Application

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown