我正在开发一个包含核心数据的应用程序。用户可以添加类别,然后用户可以将单元格添加到类别中。如果单元格是done
,则用户将单元格设置为完成。如果该类别被调用,则视图会检查所有单元格是否为done
. 如果所有单元格都在 Core Data 中完成,它会将类别设置为done
(带有NSString:@"catisdone"
)。这一切正常。我用以下代码更改了 CellStyle:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath called");
static NSString *notDoneCellIdentifier = @"NotDoneCatCell";
static NSString *doneCellIdentifier = @"DoneCatCell";
LWCats *currentCat = [self.cat objectAtIndex:indexPath.row];
NSString *cellIdentifier;
if ([currentCat.donecat isEqualToString:@"catisdone"]) {
cellIdentifier = doneCellIdentifier;
} else {
cellIdentifier = notDoneCellIdentifier;
}
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
// Configure the cell...
cell.textLabel.text = currentCat.namecat;
cell.detailTextLabel.text = currentCat.rewardcat;
return cell; }
这在大多数情况下都可以正常工作。如果 tableView 中有一个类别,则调用它(当然)。如果我添加一个类别,效果不好,然后我转到该类别并添加一个单元格,将此单元格设置为done
,保存并关闭应用程序。如果我再次打开应用程序,类别不会更改为done
,当我转到类别并返回时,类别设置为done
。我已经尝试了很多事情(包括在 AppDelegate(和)中调用 viewWillAppear(检查是否所有单元格都已完成并设置NSString
为done
或))。not done
didFinishLaunchingWithOptions
applicationWillEnterForeground
applicationDidBecomeActive
我希望有一个人可以帮助我。