Ios 更改UITableView删除按钮文本后的文本';s第一次显示(在编辑模式下)

Ios 更改UITableView删除按钮文本后的文本';s第一次显示(在编辑模式下),ios,objective-c,uitableview,Ios,Objective C,Uitableview,一旦编辑模式开始,我想更改UITableView显示的删除文本 委托方法: -(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath 仅当第一次显示索引路径处的Delete按钮时才调用,但如果我的模型在其下方发生更改,我需要更新此文本。是否可以在不重新加载整个节的情况下再次调用此方法?请参阅下面的代码,并

一旦编辑模式开始,我想更改UITableView显示的删除文本

委托方法:

 -(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath 
仅当第一次显示索引路径处的Delete按钮时才调用,但如果我的模型在其下方发生更改,我需要更新此文本。是否可以在不重新加载整个节的情况下再次调用此方法?请参阅下面的代码,并提前感谢您的帮助

    -(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
      ContainerTableViewCell *cell = (ContainerTableViewCell*)[self.tableView cellForRowAtIndexPath:indexPath];

      if ([cell.editPhotos count] > 0) {
          return [NSString stringWithFormat:@"Delete %d photos", [cell.editPhotos count]];
      } 
      else{
          return @"Delete Section";
      }
   }

对于一些上下文,我在UITableViewCell中嵌套了一个UICollectionView,当选择一个单元格时会发送一个通知。我已尝试使用以下内容重新加载该部分:

 [self.tableView reloadRowsAtIndexPaths:@[[self.tableView indexPathForCell:cell]] withRowAnimation:UITableViewRowAnimationNone];
但这是不需要的,因为它会导致tableview中出现跳转,并且无法正确显示所选内容。我也尝试过:

 [self.tableView.delegate tableView:self.tableView titleForDeleteConfirmationButtonForRowAtIndexPath:[self.tableView indexPathForCell:cell]];

在绝望中。虽然这会导致调用正确的方法,但不会更改删除文本

我刚刚编写了一个初步的测试应用程序,它可以按预期工作

我想也许你获取数据的方式不是最好的方法。您正在查询一个可能已退出队列的单元格,因此可能不包含最新信息


相反,您应该努力实现真正的MVC模式,其中您的数据独立于您的视图,包括集合视图单元格。

我找到了解决此问题的方法,尽管这有点困难。委托方法

     -(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath 
每次UITableView进入编辑模式时,为每个单元格调用一次。因此,为了在数据更改时更改标题,我切换了编辑模式,使用bool表示我希望保存所选信息,即:

        cell.retainEditSelection = YES; 
        [self.tableView setEditing:NO animated:NO];
        [self.tableView setEditing:YES animated:NO];
        cell.retainEditSelection = NO;

每次选择某个应该更改删除文本的内容时,我都会使用此选项。希望这能有所帮助。

By works如预期,您是否收到多个对TitleForDeleteConfirmation ButtonFrrowatineXPath的呼叫?此外,虽然在这种情况下可能不是最佳做法,但我知道查询单元格不是问题所在。出于任何原因,如果您想在调用该索引路径后更改“删除”按钮的文本,您会如何做?