0

我有一个 TableView,我想在编辑为 true 时更改为不同的视图 (View1) 来编辑该行的数据。当编辑不正确时,我使用 didSelectRowAtIndexPath 更改为不同的视图(View2),从选定的行加载信息。

例如,如果您转到内置时钟选择闹钟,选择编辑,然后选择一个闹钟(假设您至少有一个),然后您将被带到编辑闹钟屏幕,但前提是您处于编辑状态。

所以我的问题是如何在编辑时复制此功能。

4

3 回答 3

1

在您的 UITableViewDelegate 中有一个可选方法:

tableView:willBeginEditingRowAtIndexPath:

此方法仅在用户滑动单元格时通知您。要通过任何其他方法(即按下按钮)知道您处于编辑模式,您可以使用:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"Editing");
    isEditing = YES;        

    return UITableViewCellEditingStyleDelete;
}

请注意,您必须返回 UITableViewCellEditingStyle,在大多数情况下,这将是 UITableViewCellEditingStyleDelete。另请注意,这是为每个单元格调用的,因此如果您只想检查您是否处于编辑模式(而不是被通知),您可以使用:

[tableView isEditing]
于 2009-11-02T17:51:05.497 回答
0

至于知道您是否处于编辑模式,UITableView有一个属性editing可以做到这一点,以及一个适当的动画 setter。(如果您使用正确的按钮类型,系统还将根据此状态切换您的编辑/完成按钮。)

于 2009-11-02T17:57:12.247 回答
0

您可以跟踪您当前是否处于编辑模式,单击编辑按钮使您进入编辑模式,单击取消使您退出编辑模式。

进入编辑模式时,使用取消按钮在导航栏上按下另一个导航项,离开编辑模式时弹出导航项。

根据您是否处于编辑模式,单元格可以显示不同的内容。当切换进入或退出编辑模式重新加载表格数据时,会导致不同的显示。

didSelectRowAtIndexPath 可能有不同的行为,具体取决于您是否处于编辑模式。如果在编辑模式下单击单元格,则会打开您的编辑视图,如果不是在编辑模式下,则更改为您的 View2。

于 2009-11-02T17:18:28.447 回答