0
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Return NO if you do not want the specified item to be editable.
    if ([[fetchedResultsController sections] objectAtIndex:indexPath.section] == 0 ) {
        return NO;
    }
    else {
        return YES;
    }
}

これにより、NSFetchedResultsController が NSFetchedResultsChangeDelete タイプの didChangeObject を呼び出すことがブロックされます。

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject 
       atIndexPath:(NSIndexPath *)indexPath 
     forChangeType:(NSFetchedResultsChangeType)type 
      newIndexPath:(NSIndexPath *)newIndexPath {

    switch (type) {
        case NSFetchedResultsChangeInsert:
            [self.tableView  insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath]
                                   withRowAnimation:UITableViewRowAnimationFade]; 
            break;
        case NSFetchedResultsChangeUpdate:
            [self configureCell:(CustomScheduleTableViewCell *)[self.tableView cellForRowAtIndexPath:indexPath]
                    atIndexPath:indexPath];
            break;
        case NSFetchedResultsChangeDelete:
            [self.tableView  deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] 
                                   withRowAnimation:UITableViewRowAnimationFade]; 
            break;
        case NSFetchedResultsChangeMove:
            [self.tableView  deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] 
                                   withRowAnimation:UITableViewRowAnimationFade]; 
            [self.tableView  insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] 
                                   withRowAnimation:UITableViewRowAnimationFade]; 
            break;      
        default:
            break;
    }

}

ユーザーがこのセクションの行をスワイプして削除できないようにするにはどうすればよいですか。しかし、私のプログラムはバックグラウンドスレッドからできますか?

4

1 に答える 1

0

この- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPathメソッドは、ユーザー インタラクションの編集を許可するためだけのものです。不要な場合は、このメソッドを削除してください。

于 2012-05-21T16:54:52.407 に答える