2011-09-12 5 views
-3

나는 UITableView이 있습니다. 표 셀을 슬라이드 (스 와이프)하면 삭제 단추가 표시됩니다. 그런 다음 삭제 버튼을 누르면 행이 삭제됩니다.삭제 단추를 누를 때 UITableView 행을 삭제하는 방법은 무엇입니까?

어떻게 할 수 있습니까? 누구든지이 iPhone 기능에 대한 아이디어가 있습니까?

+1

두 가지 이유로 다운 voted : 첫째, 귀하의 질문의 제목과 시체는 같은 것을 요구하지 않는 것 같습니다. 둘째, 더 중요한 것은, SO 에티켓은 여러분이 이미 시도한 것을 보여주고, 정확히 어디에서 붙어 있는지를 묻는 것입니다. 그렇게함으로써 우리는 정확히 당신이 달성하고자하는 것을 훨씬 더 명확하게 파악할 수 있습니다. 그리고 그것은 당신이 스스로 노력했다는 것을 보여줍니다. 그에 따라 질문을 편집하십시오. – stakx

+0

나는 tableview를 가지고있다. tableview 셀을 만지면 새로운 Viewcontroller가 표시됩니다. 이제 내 tableview 셀에는 cell.accessory 심볼이 있습니다 (>). UIControlEventTouchDragInside accessoryType 기호가 나에게 액세서리 버튼 (그냥 삭제 버튼처럼)을 표시 할 때, 내가 원한다. 내가 삭제 버튼을 누르면. 그것은 tableview에서 행을 삭제합니다. –

답변

0

tableView:commitEditingStyle:forRowAtIndexPath: 메서드 구현에서 모델에서 해당 데이터를 제거하기 만하면됩니다 (아마도 NSArray은 tableView를 채우기 위해 기반으로합니다). 그런 다음 [tableView reloadData]을 호출하여 tableview에 자체로드를 요청하십시오.


참고 : 또한 행 애니메이션, 모델을 제거하는 방법을 알고 먼저 필요를 관리하기 전에 행 삽입/삭제 애니메이션 기능 (문서에 대한 deleteRowsAtIndexPaths:animation: 참조), 하지만을 사용할 수 있습니다 - 그들은 항상 동기화되어야하고, deleteRowsAtIndexPaths:animations:으로 놀고 자 할 때, 먼저 애니메이션이없는 모델에서 행을 성공적으로 삭제하지 않으면 앱이 InconsistencyException을 던질 것입니다. 그래서 한 단계 씩 나아가고 기본 단계를 먼저 시작하십시오. MVC의 모델 부분 (데이터를 보유하고있는 NSArray)을 수정하여 추가 작업을 시작하십시오.

+0

저는 테이블 뷰를 가지고 있습니다. tableview 셀을 만지면 새로운 Viewcontroller가 표시됩니다. 이제 내 tableview 셀에는 cell.accessory 기호 (>)가 있습니다. UIControlEventTouchDragInside accessoryType 기호가 나에게 액세서리 버튼 (그냥 삭제 버튼처럼)을 표시 할 때, 내가 원한다. 내가 삭제 버튼을 누르면. 그것은 tableview에서 행을 삭제합니다. 어떻게하면 되나요? ??? –

+0

그런 다음 설명서와 Apple의 프로그래밍 가이드를 읽으십시오. 자세한 내용과 샘플 코드는 다음과 같습니다. http://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/ManageInsertDeleteRow/ManageInsertDeleteRow.html#//apple_ref/doc/uid/TP40007451-CH10-SW1 – AliSoftware

2
- (void)tableView:(UITableView *)tableView 
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(editingStyle == UITableViewCellEditingStyleDelete) 
    { 
     [listArray removeObjectAtIndex:indexPath.row]; 
     [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop]; 
    } 
} 
+0

테이블 뷰가 있습니다. tableview 셀을 만지면 새로운 Viewcontroller가 표시됩니다. 이제 내 tableview 셀에는 cell.accessory 기호 (>)가 있습니다. UIControlEventTouchDragInside accessoryType 기호가 나에게 액세서리 버튼 (그냥 삭제 버튼처럼)을 표시 할 때, 내가 원한다. 내가 삭제 버튼을 누르면. 그것은 tableview에서 행을 삭제합니다. 어떻게하면됩니까 ??? –

+0

클래스 파일에서 테이블 뷰를 표시하는이 메서드를 포함하는 경우 삭제 단추가 셀을 삭제하는 것을 볼 수 있습니다. – Robin

관련 문제