2014-09-20 2 views
1

연락처가 나열된 테이블보기가 있습니다. 셀 리로드 편집을 두드리고 레이블을 텍스트 입력으로 표시합니다. 오른쪽 상단에 저장 단추가 있어야하므로 저장을 누르면 셀에서 업데이트 된 입력을 가져올 수 있습니까? 액션이 바깥에서 시작 되었기 때문에 셀에 메시지를 보내야합니다.양식 셀에서 데이터 가져 오기

지금은 cellForRowAtIndexPath을 사용하여 데이터를 가져 왔으며 셀 속성에 액세스했습니다.

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"id "forIndexPath:editCellIdx]; 
NSString *input 1 = cell.labelOne.text; ... and so on 

더 좋은 방법이 있습니까?

+0

다음에서 텍스트 필드의 편집 된 텍스트를 얻을 나는 즉시 텍스트 편집 해있는 모델을 수정해야한다고 생각합니다. 따라서 사용자가 데이터를 저장하지 않기로 결정하면 하프 편집 모델을 포기하고 기본적으로 아무 작업도 수행하지 않아도됩니다. 따라서 편집 모드로 들어가면 모델의 사본 *을 가져오고 저장하면 원본 모델을 편집 된 모델로 덮어 씁니다. – trojanfoe

+0

@ 트로이 호프 나는 비슷한 생각을 가지고있었습니다. Model을 View에 노출하는 대신. 편집 후 텍스트를 다시 위임 할 인터페이스를 작성할 수 있으며 뷰 컨트롤러는 텍스트로 모델을 계속 업데이트합니다. 이런 위임을 사용하는 것은 과도한 일인가요? 아니면 적어도 최소한의 권한을 빼는 것보다 낫지 않습니까? – user88975

답변

0

NSMutableDictionary 또는 NSMutableArray에 편집 된 데이터를 저장할 수 있습니다. 그런 다음 테이블 뷰 데이터를 다시로드하십시오.

당신은 방법

- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    NSString *cellEditedText = textField.text; 
    // save this text in dictionary or array. 
} 

- (void)saveData 
{ 
    [tableview reloadData]; 
} 
관련 문제