如何删除tableview中的单元格

时间:2014-11-13 08:14:13

标签: ios uitableview

请帮帮我。我试图删除tableview中的单元格。我是iOS开发的初学者。

请帮帮我。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    int num = [[self.fetchedResultsController sections] count];
    return [[self.fetchedResultsController sections] count]; 
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    id sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
    NSInteger numberOfRows = [sectionInfo numberOfObjects];

    return numberOfRows;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath   *)indexPath
{
      id cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
      [self configureCell:cell atIndexPath:indexPath];

     return cell;

}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
     if (editingStyle == UITableViewCellEditingStyleDelete) {
     // Delete the row from the data source
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
     } 
     else if (editingStyle == UITableViewCellEditingStyleInsert) {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
     }
}

方法是在我的单元格中连接类tableviewcell有更多细节。

- (void)configureCell:(id)cell atIndexPath:(NSIndexPath *)indexPath
{
    BookDetail *bookDetail = [self.fetchedResultsController objectAtIndexPath:indexPath];

    [(storageuser *)cell settingupWithInfo:bookDetail];

}

3 个答案:

答案 0 :(得分:1)

tableView:commitEditingStyle:forRowAtIndexPath:中,您需要在调用self.fetchedResultsController之前更新数据源(接缝为deleteRowsAtIndexPaths:withRowAnimation:

答案 1 :(得分:1)

您必须实现UITableViewDataSource方法

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
      return YES;
}

通过这种方式,可以删除表视图的所有单元格。 如果您想避免删除特定索引路径的单元格,只需在其中放入一个条件。

答案 2 :(得分:0)

您还必须使用以下

删除数据源中的条目
[self.managedObjectContext deleteObject:bookDetail];
[self.managedObjectContext save:nil]; 

[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];