请帮帮我。我试图删除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];
}
答案 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];