UITableView单元格为空

时间:2012-07-27 16:51:24

标签: iphone objective-c ipad uitableview

我的UITableView存在真正的问题,让我引导您完成它。

我的故事板中有一个UITableViewController,它有四个不同的原型单元格,每个单元格都有自己的标识符。

然后我在班上为控制器提供了这个:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"name";

    if (indexPath.section == 0) CellIdentifier = @"name";
    else if (indexPath.section == 1) CellIdentifier = @"name";
    else if (indexPath.section == 2 && indexPath.row == 0) CellIdentifier = @"segment";
    else if (indexPath.section == 2 && (indexPath.row == 1 || indexPath.row == 2 || indexPath.row == 3)) CellIdentifier = @"switch";
    else if (indexPath.section == 3) CellIdentifier = @"segment";
    else if (indexPath.section == 4) CellIdentifier = @"segment2";
    else if (indexPath.section == 5) CellIdentifier = @"name";
    else if (indexPath.section == 6) CellIdentifier = @"name";
    else if (indexPath.section == 7) CellIdentifier = @"name";

    GuestDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = [[GuestDetailCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    //Configure my cells here, like so:
    if (indexPath.section == 0)
    {
        cell.title.text = @"title";
    }
    else if (indexPath.section == 1)
    {

    }
    //etc

    return cell;
}

我认为这是我的问题所在,因为我已经成功使用了一些不同的代码(如果您需要查看它我会添加,请告诉我。

表中显示正确数量的单元格和正确的部分数量,如果选择一个单元格,它会将您带到右侧子视图控制器,但实际单元格本身只是空白。为什么他们都会返回零?

现在显示视图时,所有单元格都是空白的。 cell = [[GuestDetailCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];这似乎被一遍又一遍地调用,与配置显示的我的单元格相反。

我通过调用此代码来了解此视图:

- (void)addNewGuest
{
    newGuestViewController *addGuestViewController = [[newGuestViewController alloc] initWithStyle:UITableViewStylePlain];
    addGuestViewController.delegate = self;

    //Create a new managed object context for the new guest -- set its persistent store coordinator to the same as that from the fetched results controller's context.
    NSManagedObjectContext *addingContext = [[NSManagedObjectContext alloc] init];
    self.addingManagedObjectContext = addingContext;

    [addingManagedObjectContext setPersistentStoreCoordinator:[[fetchedResultsController managedObjectContext] persistentStoreCoordinator]];

    addGuestViewController.guest = (GuestInfo *)[NSEntityDescription insertNewObjectForEntityForName:@"GuestInfo" inManagedObjectContext:addingContext];

    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:addGuestViewController];

    [self.navigationController presentModalViewController:navController animated:YES];
}

任何想法,还是需要更多信息?

感谢。

1 个答案:

答案 0 :(得分:0)

这让我发疯了。把我困在客户面前。 jrturton的评论得到了我需要的答案。因为它没有任何答案,所以最初吹过这个问题。发布jrturton的评论作为答案,因此不太可能被忽视。这是他的评论(答案):

  

您必须在故事板中设置与您相同的重用标识符   正在使用代码。如果你这样做,出列将总是返回一个单元格,   而且你永远不需要实例化一个。