通过使用“editingStyleForRowAtIndexPath”方法,不会调用“didSelectRowAtIndexPath”方法

时间:2010-04-27 08:21:27

标签: objective-c uitableview delegates

没有调用委托方法

-(void)viewWillAppear:(BOOL)animated
{
    [theTableView setEditing:TRUE animated:TRUE];
}


-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewCellEditingStyleDelete;
}

通过调用上面的方法,我将在表视图中的每个单元格之前获得减去组件。

但是下面的方法didSelectRowAtIndexPath没有被调用,并且透露指示器不可见。

- (void )tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
   [theTableView deselectRowAtIndexPath:indexPath animated:YES];
    ContactEditViewCotroller *contactEditViewCotroller=[[ContactEditViewCotroller alloc]init];
    contactEditViewCotroller.isEdit=isEdit;
    if(isEdit == YES)
    {
        for(int i=0; i<=[editObject.contactList count]-1;i++)
        {
            if(indexPath.section == i)
            {
                appDelegate.isAddInEdit=NO;
                editcontacts = [editObject.contactList objectAtIndex:i];
                contactEditViewCotroller.editcontacts=editcontacts;
                indexRow=i;
            }
        }
    }
    else
    {
        for(int i=0; i<=[addContactList count]-1;i++)
        {
            if(indexPath.section == i)
            {
                appDelegate.isAddInEdit=NO;
                Contacts *obj = [addContactList objectAtIndex:i];
                contactEditViewCotroller.addcontacts=obj;
            }
        }
    }
    [[self navigationController] pushViewController:contactEditViewCotroller animated:YES];
    [contactEditViewCotroller release];

}

1 个答案:

答案 0 :(得分:2)

当您将allowsSelectionDuringEditing设置为TRUE时,将调用方法didSelectRowAtIndexPath。

allowsSelectionDuringEditing的值确定用户是否可以在接收器处于编辑模式时选择单元格。

设置如下:

tableView.allowsSelectionDuringEditing = YES;