TableView registerClass:forCellReuseIdentifier不起作用

时间:2014-04-29 13:11:33

标签: ios uitableview

问题是tableview中的单元格内容没有显示!!

列出部分代码

1。在视图控制器中

 @property (strong, nonatomic) IBOutlet UITableView *mtableview;

2。在viewDidLoad

self.mtableview.delegate = self;

self.mtableview.dataSource = self;

[self.mtableview registerClass:[MyTableViewCell  
class]forCellReuseIdentifier:@"MytableViewcell" ];

第3。在tableview cellForRowAtIndexPath中:

  MyTableViewCell *mcell = [tableView 
     dequeueReusableCellWithIdentifier:@"MytableViewcell" forIndexPath:indexPath];

     mcell.mdataname.text = [mdataArray objectAtIndex:indexPath.row];

4。在MyTableViewCell

 @property (strong, nonatomic) IBOutlet UILabel *mdataname;

5。我发现mcell不是nil,它已经是alloc,但是mcell.mdataname是nil

6。如果我使用storyboard来设置MyTableViewCell标识符,并删除

 [self.mtableview registerClass:[MyTableViewCell  
    class]forCellReuseIdentifier:@"MytableViewcell" ]; 

tableview中的单元格内容显示!!

7。所以我们不能以编程方式设置单元格的标识符?

1 个答案:

答案 0 :(得分:2)

看起来你应该有一个与自定义单元类关联的XIB,并且你应该在代码中加载相关的NIB文件并注册NIB(而不是注册类)。

或者,或者您的班级没有在initWithStyle:reuseIdentifier:方法中正确配置自己(尽管此选项似乎不太可能在您使用IBOutlet时)。

目前,无论您遇到什么问题,都不会从存档中创建/加载mdataname