UITableView commitEditingStyle仅适用于特定情况

时间:2014-05-26 13:17:06

标签: ios objective-c uitableview

是否可以通过在特定情况下添加UITableView方法来使commitEditingStyle可编辑?

我有一个controller.m / .h文件正在为3个不同的故事板viewcontrollers做一些事情。我只希望3中的2个能够commitEditingStyle。我可以使用self.restorationIdentifier来区分它们。

3 个答案:

答案 0 :(得分:4)

你可以检查tableview标签..

-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
    {
          if(tableview.tag==1 || tableview.tag==2)
              return UITableViewCellEditingStyleDelete;

        return UITableViewCellEditingStyleNone;
    }


    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (editingStyle == UITableViewCellEditingStyleDelete) {
            //here your code

         }
    }

答案 1 :(得分:1)

public override UITableViewCellEditingStyle EditingStyleForRow(UITableView tableView, NSIndexPath indexPath)
        {
             //here we show and hide the delete for particular row
            if (indexPath.Row ==1)
            {
                return UITableViewCellEditingStyle.Delete;
            }
            else {
                return UITableViewCellEditingStyle.None;
            }


        }
        public override void CommitEditingStyle(UITableView tableView, UITableViewCellEditingStyle editingStyle, NSIndexPath indexPath)
        {
            if (editingStyle == UITableViewCellEditingStyle.Delete)
            {
             //here we handle delete button action of the     tableview
            }
        }

答案 2 :(得分:0)

好吧,似乎我只是在子类上继承并添加commitEditingStyle。然后将故事板中的类更改为子类,这就是全部。