表视图未显示我的自定义单元格

时间:2014-03-25 06:58:14

标签: ios tableview

我想在表格视图中显示自定义单元格。我正确地完成了这些步骤

  • 在故事板上添加一个表格视图。
  • 使用两个按钮,一个图像视图和三个标签设计单元格。
  • 通过uitableviewcell
  • 为单元格和子类添加一个类
  • 在.h文件中我为标签,图像视图设置了iboutlets。

在我的表视图控制器类中我做了这些事情

  • 从Web服务获取一些值并将其加载到viewDidload中的数组。
  • 在cellForRowAtIndexPath中的
  • 我创建了单元格,只加载了一些我需要在单元格中显示的值。为了测试我只是给标签提供一个示例文本。

但是当我运行应用程序时,设计的单元格不会显示。那里只有空行。

我做错了什么......我无法理解......请有人帮助我..

下面是我的代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
  static NSString *CellIdentifier = @"cell";
 // UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
duplicateCell *cell = (duplicateCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
cell.delegate_D = self;
 //  TacleCell *cell = (TacleCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
//cell.delegate = self;
// Configure the cell...

NSArray* currentDuplicates = [self.duplicateArray objectAtIndex:indexPath.row];
NSLog(@"DUPLICATE IN DUPLICATE:%@",currentDuplicates);

cell.Name_D.text = @"test name";


return cell;
}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
 {
//#warning Potentially incomplete method implementation.
// Return the number of sections.
return 1;
 }

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
//#warning Incomplete method implementation.
// Return the number of rows in the section.
NSLog(@"COUNT:%d@",[self.duplicateArray count]);

return [self.duplicateArray count];
}


- (void)viewDidLoad
{
[super viewDidLoad];

// Uncomment the following line to preserve selection between presentations.
// self.clearsSelectionOnViewWillAppear = NO;

// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
 //self.navigationItem.rightBarButtonItem = self.editButtonItem;
[self.tableView registerClass:[duplicateCell class] forCellReuseIdentifier:@"cell"];
self.title = @"Duplicate Req";
self.duplicateArray = [TableViewController getDuplicateList];
NSLog(@"DUPZ %@",self.duplicateArray);

}
请某人帮助我......

编辑:下面的图片将帮助您了解我的情况,我认为......

second view is the one i got trouble

i gave cell Identifier like this

这是我的故事Bord ..你可以看到最后一个视图控制器(在右下角)是我正在谈论的那个。一个留在它旁边做同样的功能,但它就像一个魅力。我应用相同的代码,遵循相同的步骤。为什么这不能告诉我正确的结果..?

story board

我已经解决了问题......我有一个错误的观点。我做了什么,我在两个表视图之间创建了一个视图并在我的警报视图中执行了...现在工作很精细......

感谢每个人指导我......

2 个答案:

答案 0 :(得分:0)

当deque没有收到细胞时,你需要初始化细胞。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
  static NSString *CellIdentifier = @"cell";
 // UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
duplicateCell *cell = (duplicateCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if(cell == nil)
{
cell = [[duplicateCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

答案 1 :(得分:0)

使用xib创建自定义UITableViewCell类并在xib中绘制单元格。

然后在tableView类

中使用此代码
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"cell";

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

    cell.nameLabel.text = [tableData objectAtIndex:indexPath.row];
    cell.thumbnailImageView.image = [UIImage imageNamed:[thumbnails objectAtIndex:indexPath.row]];
    cell.prepTimeLabel.text = [prepTime objectAtIndex:indexPath.row];

    return cell;
}