2010-01-15 75 views
1

我在我的导航栏中有一个编辑按钮,并且我有一个表格视图。如何从表视图中删除单元格?

我的编辑按钮调用一个-editAction方法。

然后,我有这段代码来删除一个单元格,但我不知道如何使编辑按钮来调用这个代码......或编辑按钮如何让表格视图显示那些红色删除圈子的每一个细胞,然后触发此:

// Override to support editing the table view. 
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     // Delete the managed object at the given index path 
     NSManagedObject *eventToDelete = [eventsArray objectAtIndex:indexPath.row]; 
     [managedObjectContext deleteObject:eventToDelete]; 

     // Update Event objects array and table view 
     [eventsArray removeObjectAtIndex:indexPath.row]; 
     [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; 

     // Commit the change 
     NSError *error; 
     if (![managedObjectContext save:&error]) { 
      // Handle the error 
     } 
    } 
} 

回答

3

按照UITableView类参考文档,代码:

tableView.editing = YES; 

应该把表进入编辑模式,并显示那些红色删除圈子。然后,当用户删除一个单元格时,应调用数据源方法。

您还可以使用[tableView setEditing:YES animated:YES];的动画效果

2

在您的视图控制器的-viewDidLoad方法添加编辑按钮:

self.navigationItem.rightBarButtonItem = self.editButtonItem; 

此按钮将切换控制器的编辑模式,将其发送-setEditing:动画:

+0

editButtonItem从哪里来?在UITableView或UITableViewController中没有这样的属性,在整个示例代码中也没有定义editButtonItem。令人困惑... – openfrog 2010-01-15 12:30:35

+0

它来自UIViewController的类别UIViewControllerEditing,请参阅UIViewController.h。 – Costique 2010-01-15 13:03:28

+0

Costique,这看起来像一个很好的答案,但这是特定于UITableViewController?否则,不确定UITableView如何获取setEditing:animated:消息? OP不是关于视图控制器类的具体内容,这就是为什么我给出了我的答案,但如果是这样的话,你的答案会更可取。谢谢 – cidered 2010-01-15 13:34:56

相关问题