J'ai d'abord été chargé de créer un popover qui venait d'un BarButtonItem, puis d'après une sélection dans ce popover (qui était une vue de table), un autre popover se présenterait de la cellule avec les données . Les données que j'avais étaient correctement présentées de cette façon. Dans le débogueur, je vois toujours les données dans mon cellForRowAtIndexPath avec NSLog ce qui est dans le self.CategoriesArray. Pour quelque raison cependant, les données ne montreront pas ... maintenant cependant, ils ne veulent pas le popover initial, et juste un popover qui vient du BarButtonItem. Pour la vie de moi, je ne peux pas comprendre pourquoi mes données ne sont pas présentées puisque tout ce changement devrait être de remplacer le premier UITableView dans le popover, avec le second UITableView. À moins que je manque quelque chose ... Toute aide serait appréciée. Merci!Aide à déboguer UITableView, n'affiche aucune donnée
cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (tableView == _filterTableView || tableView == _categoriesTableView) {
static NSString *simpleIdentifier = @"SimpleIdentifier";
UITableViewCell *simpleCell = [tableView dequeueReusableCellWithIdentifier:simpleIdentifier];
if (simpleCell == nil) {
simpleCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleIdentifier];
}
NSUInteger row;
row = [indexPath row];
simpleCell.textLabel.textColor = [UIColor whiteColor];
simpleCell.selectionStyle = UITableViewCellSelectionStyleNone;
// first popover
if (tableView == _filterTableView) {
simpleCell.textLabel.text = [_filterArray objectAtIndex:row];
return simpleCell;
}
// second popover
else if (tableView == _categoriesTableView) {
simpleCell.textLabel.text = [_categoriesArray objectAtIndex:row];
return simpleCell;
}
- (IBAction)FilterButtonPressed:(id)sender {
// This part works for two popovers
// UIViewController *contentViewController = [[UIViewController alloc] init];
// self.FilterTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 200, 150) style:UITableViewStylePlain];
// self.FilterTableView.delegate = self;
// self.FilterTableView.dataSource = self;
// self.FilterTableView.bounces = NO;
// self.FilterTableView.scrollEnabled = NO;
// self.FilterTableView.backgroundColor = [UIColor clearColor];
// contentViewController.contentSizeForViewInPopover = CGSizeMake(200, 150);
// contentViewController.view = _filterTableView;
//
// self.FilterPopoverController = [[UIPopoverController alloc] initWithContentViewController:contentViewController];
// [self.FilterPopoverController presentPopoverFromBarButtonItem:_filterButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
//
// [contentViewController release];
// New code tfor one popover
[self loadCategories];
UIViewController *contentViewController = [[UIViewController alloc] init];
self.CategoriesTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) style:UITableViewStylePlain];
self.CategoriesTableView.delegate = self;
self.CategoriesTableView.dataSource = self;
self.CategoriesTableView.bounces = NO;
self.CategoriesTableView.scrollEnabled = YES;
self.CategoriesTableView.backgroundColor = [UIColor clearColor];
contentViewController.contentSizeForViewInPopover = CGSizeMake(320, 500);
contentViewController.view = _categoriesTableView;
self.FilterPopoverController = [[UIPopoverController alloc] initWithContentViewController:contentViewController];
self.FilterPopoverController.delegate = self;
[self.FilterPopoverController presentPopoverFromBarButtonItem:_filterButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[contentViewController release];
}
}
Chaque fois que j'ai un problème comme celui-ci, je vérifie d'abord que j'ai correctement connecté tout IB, puis je mets un point d'arrêt sur la méthode tableView pour m'assurer qu'il est au moins appelé. –
Ouais c'est une bonne idée. Sauf pour un popover, je n'ai pas de point de vente. Il se présente simplement à partir du bouton. – Crystal
duplication possible de [UITableViewDataSource, méthode -cellForRowAtIndexPath] (http://stackoverflow.com/questions/6702311/uitableviewdatasource-method-cellforrowatindexpath) – Crystal