Iphone Tableview在编辑时更改为其他视图

时间:2009-11-02 17:00:34

标签: iphone edit tableview

我有一个TableView,我希望将其更改为另一个视图(View1),以便在编辑为真时编辑该行的数据。当编辑不成立时,我使用didSelectRowAtIndexPath更改为从所选行加载信息的不同视图(View2)。

这方面的一个示例是,如果您进入内置时钟选择闹钟,选择编辑然后选择闹钟(假设您至少有一个),则您将被带到编辑闹钟屏幕,但前提是您正在编辑。

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

3 个答案:

答案 0 :(得分:1)

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

tableView:willBeginEditingRowAtIndexPath:

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

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

    return UITableViewCellEditingStyleDelete;
}

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

[tableView isEditing]

答案 1 :(得分:0)

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

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

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

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

答案 2 :(得分:0)

至于知道您是否处于编辑模式,UITableView has a property editing就是这样做,以及appropriate animated setter。 (如果使用右键类型,系统也会根据此状态切换编辑/完成按钮。)