在我的UITableViewController子类中,我按如下方式注册我的单元类:
[[self fieldListTableView] registerClass:[MyCellClass class] forCellReuseIdentifier:@"MyCellIdentifier"];
然后我使用iOS 6中引入的方法将单元格出列:
MyCellClass* cell = (MyCellClass *)[tableView dequeueReusableCellWithIdentifier:@"MyCellIdentifier" forIndexPath:indexPath];
然而,单元格的xib文件似乎丢失了。当我在lldb中运行po cell
时,我得到一个有效的单元格对象。然后,当我尝试po [cell myLabelOutlet]
时,我得到nil
作为回应。
我是否也需要注册XIB文件?
答案 0 :(得分:6)
要从xib文件加载单元格,您必须使用registerNib:
注册,而不是
registerClass:
。例如:
[self.fieldListTableView registerNib:[UINib nibWithNibName:@"MyCellClass" bundle:nil]
forCellReuseIdentifier:@"MyCellIdentifier"];