2010-06-01 2 views
0

여러 UITableViewController가있는 응용 프로그램이 있습니다. 이제 사용자는 "데이터 원본"을 변경할 수 있습니다. 이 경우 관련 UITableViews에서 데이터를 무효화 (재설정)해야합니다.UITableView 내용의 무효화

나는 NSNotificationCenter를 사용하여 데이터 소스가 변경 될 때 생성되는 이벤트에 대한 관찰자로서이 컨트롤러를 추가 할 수 있다는 것을 알았습니다.

문제는 기본 테이블을 어떻게 재설정합니까? 물론 부울 플래그를 설정하고 UITableView를 호출 할 수 있습니다. viewWillAppear 또는 viewDidAppear에서 reloadData를 호출 할 수 있지만 더 깨끗한 방법이 있다면 궁금합니다.

또는 아마도 나는 그 요점을 완전히 놓치고 있으며 NSNotificationCenter를 전혀 필요로하지 않습니다. 미리 감사드립니다.

답변

0

질문은 어떻게 기본 테이블을 재설정합니까? 물론 부울 플래그를 설정할 수 있습니다.

여기에 플래그를 사용해야하는 이유가 확실하지 않습니다. 보기 컨트롤러가 알림을 받으면 알림 핸들러에서 테이블을 다시로드하십시오.

UITableViewNSFetchedResultsController에 연결된 경우 테이블을 업데이트하는 것이 조금 다르게 작동합니다. 그렇지?

+0

데이터로드는 값 비싼 작업이기 때문에 필요에 따라 즉 사용자가이보기를 입력 할 때만 수행하려는 경우가 많으므로이를 배제한 것입니다. 사용자가 데이터 소스를 변경했기 때문에 여러 테이블에 데이터가 다시로드되는 것은 비용이 너무 많이 듭니다. 사용자가 해당보기를 전혀 방문하지 않을 수도 있습니다. – Roman

+0

그런 다음 viewWillAppear에서 다시로드하십시오. –

+0

원래 제안했던 것처럼 플래그를 기반으로합니까? :( – Roman