2012-06-16 1 views
1

내보기에서 오른쪽 행을 삭제하려고 할 때 문제가 있습니다. 그룹화 된 3 개의 동적 생성 셀이있는 tableview가 있고 또한 편집 모드를 사용하고 있습니다. 각 섹션에서 행을 더 추가하고 삭제할 때 모든 것이 올바르게 작동하지만 특정 행을 삭제하려고하면 항상 마지막 행이 삭제됩니다. 내가 1,2,3 (원래 하나 외에) 행을 추가했고 2 번을 삭제하고자 할 때, 그것은 항상 3 번을 삭제한다고 가정합시다. 생성 된 각각의 새로운 행에 대해 자동으로 태그를주는 메소드가 있습니다. 어떻게 삭제 문제를 해결할 수 있습니까? 어떤 아이디어?테이블 뷰 행 삭제 문제

-(void)tableView:(UITableView *)TableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    if (editingStyle == UITableViewCellEditingStyleDelete) 
    { 
    int i=0; 
    for (i=0; i<myarray.count; i++) 
    { 
     UITableViewCell *aux=[myarray objectAtIndex:i]; 

     if (aux.tag >= 101 && aux.tag < 200 && indexPath.section==0) { 
      [myarray removeObjectAtIndex:i]; 
      [Table reloadData]; 
     } 
     if (aux.tag >= 201 && aux.tag < 300 && indexPath.section==1) { 
      [myarray removeObjectAtIndex:i]; 
      [Table reloadData]; 
     } 
     if (aux.tag >= 301 && indexPath.section==2) { 
      [myarray removeObjectAtIndex:i]; 
      [Table reloadData]; 
     } 

감사

을 : 내가 각 섹션은 하나의 행, 100 다음 200, 300을 가지고 ... 내가이 작업을하기 위해 어떻게 든 삭제 된 행의 태그를 식별하기 위해 알고 ...이 내 코드입니다

답변

0

이 방법을 사용하고 당신으로 교체 :

-(void)tableView:(UITableView *)TableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    if (editingStyle == UITableViewCellEditingStyleDelete) 
    { 
     [myarray removeObjectAtIndex:indexPath.section]; 
     [Table reloadData]; 
    } 
} 
+0

그것은 않았나 일과 제 행 태그 (100)를 구별하기 위해 (즉,도 0 섹션)과 두 번째 행 태그에 그 방법이 필요 200 (즉, 1 섹션) 및 세 번째 행 태그 300 (즉 2 섹션)입니다. 따라서 생각하면, 내 AUX가 삭제 된 행과 같으면 , 그럼, 배열 및 또한 tableview에서 삭제 ...하지만 난 어떻게 해야할지 모르겠어 !! ... 그리고 난 Japa