0

在下面的代码中,我想在删除单元格时执行一些数据库操作,因此我需要发送有关正在删除的单元格的服务器信息。如果我没记错 cellForRowAtIndexPath 永远不应该直接调用,但是我想不出任何其他方法来获取以下方法中的单元格信息,所以我的问题是:

在下面手动调用 cellForRowAtIndexPath 是否可以接受:

        [tableView cellForRowAtIndexPath:indexPath]);



- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {

        [localGlobalNotifications removeObjectAtIndex:indexPath.row];
        [notificationTableView beginUpdates];

        [notificationTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];



        [self postLeaveRequest];

        NSLog(@"Row is : %@", [tableView cellForRowAtIndexPath:indexPath]);


        [notificationTableView endUpdates];

    }
}

澄清一下:我知道我可以通过调用 reloadData 来调用 cellForRowAtIndexPath 的委托调用,我想要做的是访问在 commitEditingStyle 中被删除的单元格。我不是想重新加载我的 tableView,而是想获得对被删除单元格的引用。- 是否可以通过直接调用 cellForRowAtIndexPath 来获取对所述单元格的引用?

4

3 回答 3

1

就像您在示例代码中所做的那样,要求 TableView 为您提供单元格没有任何问题。

这是返回值的文档:

表示表格单元格的对象,如果单元格不可见或 indexPath 超出范围,则为 nil。

如果您使用“模型”数据注释单元格,那么我认为您正在打破 MVC 模式。您的视图不需要以这种方式了解模型数据,因此查询视图以进行数据库更改将使您将来的生活变得困难(例如可读性,可扩展性和可重用性)

您最好将数据库元数据存储在一个集合中,例如 NSArray - 或 NSArray 的 NSArray。

然后,您可以通过以下方式获取所需的所有数据:

id modelData = myModel[indexPath.section][indexPath.row];
于 2013-08-28T07:27:01.220 回答
0

是的,您可以使用cellForRowAtIndexPath:它们在苹果文档中也使用过的方法,或者您可以创建一个单元格数组,然后您可以从那里删除它并将其反映在您的数据库中。

于 2013-08-28T07:31:02.283 回答
-1

您可以使用以下行调用 cellForRowAtIndexPath: 方法,这里它将自动调用所有委托和数据源方法。

   [tableView reloadData];

或者

  [tableViewObjct reloadData];

希望这能解决您的问题!

于 2013-08-28T07:16:20.173 回答