我有一个TableView,我希望将其更改为另一个视图(View1),以便在编辑为真时编辑该行的数据。当编辑不成立时,我使用didSelectRowAtIndexPath更改为从所选行加载信息的不同视图(View2)。
这方面的一个示例是,如果您进入内置时钟选择闹钟,选择编辑然后选择闹钟(假设您至少有一个),则您将被带到编辑闹钟屏幕,但前提是您正在编辑。
所以我的问题是如何在编辑时复制此功能。
答案 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。 (如果使用右键类型,系统也会根据此状态切换编辑/完成按钮。)