我在不同的标签中使用相同的uiviewcontroller实例。 在viewcontroller中有一个uitableview。 在firstviewController实例中,我不想编辑uitableview。 在第二个我使用编辑模式的tableview。 这就是为什么我想显示或隐藏这种方法:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
是否可以像这样制作一个if语句:
#if (editingOK)
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
....some codes
}
#endif
编辑OK是BOOL属性。
如果你问为什么我想要它,因为如果用户在单元格上滑动,它会显示删除按钮。 如果我的编辑OK = YES,我只想要它。
答案 0 :(得分:1)
是否通过调用UITableViewController的setEditing方法来控制可编辑性?所以你可以根据你是否想要启用编辑来设置它,没有#ifdef ugliness。
答案 1 :(得分:1)
#if/#endif
语法用于条件编译:它允许您根据构建配置在编译时修改程序。阅读“C预处理器”以了解更多信息。
如果您使用相同的对象 instance 作为不同UITableViews的委托,您必须有一些方法来确定您正在处理哪个表。
您需要做的是实施其他方法:
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
当用户滑动单元格时会调用该方法,您可以决定是否应该显示删除按钮,然后返回相应的UITableViewCellEditingStyle
常量。