自定义单元格未加载在tableview中?

时间:2015-04-29 03:09:34

标签: ios objective-c uitableview

我遇到了一个最奇怪的问题;有谁知道为什么下面的表视图没有加载我的自定义单元格?是的,数据源和委托连接到视图控制器:)我以前做过这个,但突然间它就像缺少了一样。

·H

@interface MyAccountViewController : UIViewController {

    IBOutlet UITableView *StorageTableView;

    NSArray *StoredItems;
    NSMutableData *data;
    }

的.m

      - (int)numberOfSectionsInTableView: (UITableView *)tableview

        {
            return 1;

        }

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

            return [StoredItems count];

        }

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

    StorageItemTableViewCell *cell = (StorageItemTableViewCell *)[tableView dequeueReusableCellWithIdentifier:DoctorsTableIdentifier];
    if (cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"StorageItemTableViewCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];



        NSDictionary *node = [StoredItems objectAtIndex:indexPath.row];
       [[cell itemName] setText:[node objectForKey:@"title"]];
       [[cell itemDescrip] setText:[[[[node objectForKey:@"body"] objectAtIndex:0] objectForKey:@"raw"] objectForKey:@"value"]];

    }
    return cell;
}

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        return 99;
    }

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {


    }

2 个答案:

答案 0 :(得分:1)

您是否注册了自定义单元格?

UINib *nib = [UINib nibWithNibName:@"StorageItemTableViewCell" bundle:nil];
[self.StorageTableView registerNib:nib forCellReuseIdentifier:@"StorageItemTableViewCell"];

答案 1 :(得分:-1)

一个大问题是您只需设置一次细胞。您需要将代码更改为:

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

    StorageItemTableViewCell *cell = (StorageItemTableViewCell *)[tableView dequeueReusableCellWithIdentifier:DoctorsTableIdentifier];
    if (cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"StorageItemTableViewCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }

    cell.itemName.text = [[StoredItems objectAtIndex:indexPath.row] objectForKey:@"name"];
    cell.itemDescrip.text = [[StoredItems objectAtIndex:indexPath.row] objectForKey:@"description"];

    return cell;
}

您还需要确保[StoredItems count]返回非零值。