我在这里看到过类似的问题,但我无法解决问题。
我有一个tableView,其自定义单元格作为UITableViewCell的子类创建,具有自己的.xib文件(.xib文件将类定义为我创建的自定义类)。每当单击一行时,我想重新加载表的数据。但是,表不会重新加载。
因为我正在使用NSUserDefaults,如果我关闭屏幕并返回,我可以看到新的tableView已加载。但是,我想在单击一行时发生这种情况。这是我的代码:
@property (nonatomic,retain) IBOutlet UITableView *decksOption;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath
{
NSLog(@"Data reloaded");
static NSString *CellIdentifier = @"DecksToBuyCell";
DecksToBuyCell *cell=(DecksToBuyCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"DecksToBuyCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
//rest code
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
//code for dealing with the click
[decksOption reloadData];
}
可能是什么?就像单元格以某种方式“缓存”并且看不到新的变化。如果需要,我也可以给出其余代码,但问题是在点击一行后根本没有调用NSLog(@"Data reloaded")
。
这是我的自定义单元格代码:
- (void)awakeFromNib
{
[super awakeFromNib];
// Do something
self.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"CellBackground"]];
self.selectedBackgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"CellBackgroundSelected"]];
self.deckName.font = [UIFont rw_snapFontWithSize:24.0f];
self.deckName.textColor = [UIColor colorWithRed:116/255.0f green:192/255.0f blue:97/255.0f alpha:1.0f];
self.deckName.highlightedTextColor = self.textLabel.textColor;
}