2009-06-30 4 views
1

인터페이스 빌더를 사용하여 설계된 사용자 정의 셀이있는 UItableViewController가 있습니다. 사용자 정의 셀에는 버튼과 레이블이 있습니다. 클릭 할 때 버튼을 누르면 경고 메시지가 표시됩니다. 텍스트를 입력하고 OK를 누르면 셀의 레이블에 테이블에 업데이트 된 정보가 표시됩니다. 문제는 셀 중 하나를 클릭하기 전까지 레이블이 업데이트되지 않는다는 것입니다. IB를 사용하고 있기 때문에 [tableview reloaddata]를 사용할 수 없으며 별도의 .h 및 .m UItableViewCell 파일이 만들어지며 여기에 프롬프트 코드가 포함 된 경고보기가 표시됩니다. 경고보기를 닫을 때 표를 업데이트하기 위해 어떻게 다시로드 데이터를 호출 할 수 있습니까? [tableview reloaddata]를 viewWillAppear 아래 UItableViewController에 넣었지만 작동하지 않습니다.UItableview 관련 문제 사용자 정의 셀 프롬프트에서 경고보기를 사용하여 데이터 다시로드

답변

0

UITableViewController에 대한 참조를 유지하고 셀에서 reloaddata를 호출 할 수 있습니다.

0

저는 iPhone 개발에 처음 접했지만 반복해서 본 설계 패턴 중 하나는 위임입니다. 이를 통해 구성 요소의 재사용을 유지하면서 기능을 확장 할 수 있습니다.

UIAlertView에 대한 대리인을 설정 한 다음 @interface 정의를 통해 기본 UITableViewController에서 프로토콜을 구현할 수 있다고 생각합니다. 즉, 인스턴스화 후 AlertView 객체에 델리 게이트 속성을 설정하는 한 컨트롤러에 이벤트 알림이 전달됩니다. 경고보기 특별히 눌렀을 때 위의 위임을 설정하면

기능을 살펴보십시오

...

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 

,이 함수를 오버로드, 당신은 [의 tableview reloadData] 호출 할 수 있어야한다 .

또한 UITableViewController에서 단추가 호출하는 IBAction 메서드를 정의 할 수없는 이유가 있습니까? 이렇게하면 셀의 부모를 지나칠 수 있으므로 MVC를 준수하는 것처럼 보입니다.

0

나는 그것을 알아 냈습니다. 아래 코드를 참조하십시오.

UItableView *tableView = (UItableView *)self.superview; 
[tableView reloadData]; 

self.superview은 트릭입니다!

관련 문제