2012-05-17 44 views
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從調用didChangeObject型NSFetchedResultsChangeDelete:我如何允許我的NSFetchedResultsController刪除行而不是用戶?

- (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; 
    } 

}

我怎樣才能解決這個問題,使用戶不能在本節觸擊刪除行。但我的程序可以從後臺線程?

回答

0

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath方法僅用於允許用戶交互編輯。如果你不想要這個,就擺脫這種方法。

相關問題