2012-05-27 4 views
2

J'ai une page d'historique, qui est une table UI avec 5 lignes. J'ai mis la cellule prototype aux spécifications je veux, et a ajouté ce texte dans le fichier historyviewcontroller.h correspondant:Les cellules n'apparaissent pas dans la vue de table

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 5; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath   *)indexPath 
{ 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"HistoryItem"]; 
return cell; 
} 

Je ne vois aucune cellule quand je lance l'application. J'ai clairement manqué quelque chose, mais je ne peux pas vraiment voir quoi.

Répondre

5

Vous devez réellement créer les cellules. dequeueReusableCellWithIdentifier récupère uniquement les cellules déjà créées et n'en crée pas de nouvelles.

Voici comment faire:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath   *)indexPath 
    static NSString *CellIdentifier = @"HistoryItem"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    //if cell is not nil, it means it was already created and correctly dequeued. 
    if (cell == nil) { 
     //create, via alloc init, your cell here 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
    } 
    return cell; 
} 
+0

Je place des dans mon HistoryViewController.m, est-ce le bon endroit? Mon affichage de l'historique est présenté lorsque quelqu'un appuie sur le bouton Historique (situé dans la vue principale). – Jonnybellman

+0

Aussi, j'ai utilisé le code ci-dessus, et j'ai eu diverses erreurs. Pour être sans erreur j'ai dû éditer à ceci: - (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) chemin d'index { UITableViewCell * cellule = [tableView dequeueReusableCellWithIdentifier: @ "HistoryItem"]; // si la cellule n'est pas nulle, cela signifie qu'elle a déjà été créée et correctement supprimée. if (cell == nil) { // créer, via alloc init, votre cellule ici cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier: @ "HistoryItem"]; } cellule de retour; } – Jonnybellman

+0

Eh bien trouvé un autre lien SO qui a résolu mon problème. J'aurais dû regarder plus dur avant de créer une nouvelle question http://stackoverflow.com/questions/7910206/how-can-i-create-an-uitableview-on-xcode-4-2-for-ios-5 – Jonnybellman

Questions connexes