65 votes

UITableView avec des cellules statiques n'apparaît pas

J'ai créé un nouveau projet Xcode en utilisant les Storyboards (modèle de vue par onglets). J'ai ajouté quelques contrôleurs de vue à mon storyboard, et je voulais utiliser un UITableView avec des cellules statiques pour l'un d'entre eux. Je l'ai créé, mais lorsque je l'exécute dans le simulateur, les cellules n'apparaissent pas. Je n'ai rien changé dans le projet à l'exception de ce fichier de storyboard. Je montre des captures d'écran de l'éditeur de storyboard et du simulateur en cours d'exécution. L'étiquette s'affiche, donc la vue se charge correctement. J'ai défini la couleur d'arrière-plan en gris pour que je puisse voir que la vue se charge. Toutes les cellules sont définies comme visibles. J'ai changé leur style en Basic et modifié l'étiquette, et ajouté un indicateur de divulgation, c'est tout.

simulatorxcode

205voto

Joe Y Points 1050

N'implémentez aucune des méthodes ci-dessous lorsque vous utilisez la vue tableau statique :

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
}

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
}

102voto

EeKay Points 1785

Comme indiqué sur le site web de Ray Wenderlich (dans ce billet : Début des storyboards dans iOS 5 Partie 2 , section "L'écran d'ajout de lecteur au travail" ) :

Une dernière chose à propos des cellules statiques, elles ne fonctionnent que dans UITableViewController. L'éditeur de Storyboard vous permettra de les ajouter à un objet Table View à l'intérieur d'un UIViewController normal, mais cela ne fonctionnera pas fonctionnera pas pendant l'exécution. La raison en est que UITableViewController fournit une magie supplémentaire pour prendre soin de la source de données pour les cellules statiques. Xcode vous empêche même de compiler un tel projet avec le message d'erreur " Configuration illégale : Les vues de tables statiques sont seulement valides lorsqu'elles sont intégrées dans des instances UITableViewController".

J'ai eu le même problème mais cela clarifie les choses...

34voto

Dennis Mathews Points 5261

Voulez-vous essayer d'utiliser le contrôleur TableViewController plutôt que le contrôleur Generic View ?

12voto

user3136400 Points 61

Vous pouvez ajouter une vue conteneur et intégrer un UITableViewController dans ce conteneur. Vous pouvez ensuite gérer vos cellules statiques à l'intérieur du nouveau contrôleur.

1voto

dave Points 179

J'ai rencontré le même problème, et la solution qui a fonctionné pour moi a été de présenter la sous-classe statique de UITableViewController en utilisant performSegue. Présenter le ancienne méthode con [[self navigationController] present...] ne permettait pas à la vue tableau statique de charger correctement ses cellules.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X