섹션 헤더와 섹션 인덱스를 채우는 섹션을 생성하는 결과를 가진 NSFetchedResultsController로 UITableViewController를 채우고 있습니다. 섹션 인덱스를 채우기 위해 다음 방법을 사용하고 있습니다.NSFetchedResultsController가 UITableView의 섹션 인덱스를 업데이트하지 않습니다.
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
return [fetchedResultsController_ sectionIndexTitles];
}
이제 문제가 생겼습니다. NSFetchedResultsController와 관련된 NSManagedObjectContext에 새 요소를 추가하면 새 요소가 저장되고 한 가지를 제외하고는 UITableView의 셀로 적절하게 표시됩니다. UINavigationController의 스택을 띄우고 UITableViewController를 다시로드하지 않으면 새로운 요소가 새 SECTION을 만드는 경우 새 섹션 인덱스가 오른쪽 여백에 표시되지 않습니다.
나는 NSFetchedResultsControllerDelegate의 인터페이스를 본 수동으로이 두 대리자 메서드의 끝에서
[self.tableView reloadSectionIndexTitles];
를 호출 한 :
controller:didChangeSection...
controller:didChangeObject...
내가 디버깅 방법에 실행을 추적 할 수 있습니다 동안 reload 호출이 호출되면 UITableView의 섹션 인덱스는 섹션 변경 사항을 반영하지 않습니다.
데이터가 다시 나타납니다. 새 섹션은 UITableView에 물리적으로 표시되거나 제거되지만 섹션 인덱스는 업데이트되지 않습니다.
나는 뭔가를 놓친가요?
또 다른 게시물에서 "팀"은 다음과 같이 언급했습니다. "핵심 데이터 지원 테이블 뷰가 테이블 데이터에서 NSFetchedResultsController를 사용하는 경우 테이블 섹션 인덱스를 업데이트하지 않는 3.0 SDK에 알려진 버그가 있습니다 출처." http://stackoverflow.com/questions/994359/update-results-of-nsfetchedresultscontroller-without-a-new-fetch하지만 불행히도 "Simulator - 3.1"을 구축하고있는 것처럼 보입니다. 어쩌면 아직 해결되지 않았을까요? –