在我的tableView
的{{1}}方法中,我为第一行使用自定义单元格,为其他行使用常规cellForRowAtIndexPath
:
UITableViewCell
}
然后我调用一个更改isLightTheme并重新加载数据的方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyIdentifier = @"Cell";
if (indexPath.section == 0){
CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.titleLabel.text = @"Custom cell";
if (isLightTheme){
cell.titleLabel.textColor = [UIColor blackColor];
}
else{
cell.titleLabel.textColor = [UIColor whiteColor];
}
return cell;
}
else{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier];
}
cell.textLabel.text = @"Other cells";
if (isLightTheme){
cell.textLabel.textColor = [UIColor blackColor];
}
else{
cell.textLabel.textColor = [UIColor whiteColor];
}
return cell;
}
...但我的应用程序在这一行崩溃了:
-(void)changeTheme{
isLightTheme = false;
[self.myTable reloadData];
}
错误:
' - [UITableViewCell titleLabel]:发送到实例的无法识别的选择器
我不明白发生了什么......当 cell.titleLabel.text = @"Custom cell";
首次加载时,表格加载完全正常(isLightTheme
首先设置为true
)但是当我更改{{ 1}}和ViewController
它崩溃了。有人可以帮帮我吗?感谢。
答案 0 :(得分:3)
您的重用标识符对于两个单元格都是相同的。自定义和默认。为每个使用唯一值。