2010-04-14 3 views
1

직접 편집 메서드를 호출 할 방법을 찾고있었습니다.UITableViews를 호출하여 메서드를 직접 위임

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

나는이 방법 등 내 모델 배열 에서 제거, 조작 된 세포를 애니메이션에 대한 내 모든 논리를 가지고있다. 사용자가 스 와이프, 추가 또는 재배치 할 때 호출되지만, 배경 스레드가 내 모델을 변경하면 을 직접/직접 호출하고 싶습니다.

는 그래서 같은 NSIndexPath를 구축 한 :

NSIndexPath *path = [NSIndexPath indexPathForRow:i inSection:1]; 
난 그냥 같은 호출하는 방법을 알아낼 수 없습니다

:

[self.tableview commitEditingStyle:UITableViewCellEditingStyleDelete forRowAtIndexPath:path]; 

내가 이것의 방법에 액세스해야합니까를 다른 방법으로 일반 스타일의 UITableView?

감사합니다 :)

답변

1

코드를 실행하려는 이유만으로도 그 메서드를 호출 할 수없는 이유는 알 수 없습니다. 문서에는 아무런 의미없이 해당 데이터 소스 메서드를 호출하는 효과가 있다는 상당한 힌트가 있습니다.

- (void)setEditing:(BOOL)editing animated:(BOOL)animate 

해당 메서드의 코드를 다른 메서드로 리팩토링하고 데이터 소스 메서드 및 코드의 다른 곳에서 코드를 호출하는 것이 더 바람직합니다.

모델의 변경 사항 만 반영하려면 [tableView reloadData]으로 전화하십시오. 이것이 그 때문입니다.

+0

Hi Paull 고유 한 편집 집합을 사용하는 셀의 사용자 지정 집합을 빌드했습니다. 제도법. 그래서 나는 이미 사용자가이 셀을 지우고 싶어한다는 것을 알고있다. 편집을 YES로 설정하면 프레임 워크 컨트롤을 통해 이러한 작업이 수행됩니다. 나는 commitEditingStyle를 호출하면 바로 정직하지만이 일을해야한다고 동의 \t \t \t \t \t [self.tableView : self.tableView commitEditingStyle : UITableViewCellEditingStyleDelete forRowAtIndexPath : 경로] 자동 완성 기능이 있어도 "인식 할 수없는 선택기"메시지가 표시됩니다. Xcode가 tableView의 메소드로 제공하고 싶습니다. – RickiG

+0

메서드 이름은 정확하지만 tableView에 의해 구현되지는 않습니다. 모델에서 테이블에 대한 변경 사항을 반영하기 위해 데이터 소스가 구현해야하는 메소드입니다. 알았어. –

+0

. 그래서 대신 모델을 변경하여 현재 상태를 반영하고 올바른 채널을 통해 업데이트해야합니다. 내가 tableview.dataSource = self를했을 때, 나는 그 메소드를 구현했다. 아마 아무런 변화가 없다고 생각할 때, 애니메이션을하기 위해 TableView를 강제 실행하는 대신 beginUpdates와 endUpdates를 구현해야 할 것입니다. 감사합니다, 나는 프레임 워크를 싸우는 것을 멈출 것을 약속한다 :) – RickiG

0

commitEditingStyle 메소드가 호출되는 것을, 나는 확실히 그것을 알고하지 않습니다하지만 당신은 방법을

- (void)setEditing:(BOOL)editing animated:(BOOL)animate 

를 호출 어쩌면 경우가있을 수 있습니다.

+0

두 분 모두 고마워요. 표준 접근법을 사용하고있는 것처럼 저의 질문을 읽을 수 있습니다. :) – RickiG

관련 문제