2010-11-22 7 views
1

저는 UITableView/UITableViewCells에서 정말 이상한 문제가 있습니다.UITableViewCell이 표시시 새로 고침되지 않습니까?

저는 ItemViewController라는 하위 개체가있는 개체 목록 (인수, MenuItemsViewController라고 함)을 표시하는 일반 스타일의 UITableView가 있습니다. MenuItemsViewController는 사용자가 MenuItemsViewController에서 객체를 선택할 때 ItemViewController의 menuItem 속성을 변경합니다.

사용자가 첫 번째 항목을 선택하면 모든 항목이 정상적으로 표시됩니다. 그러나 다른 항목을 계속 선택하면 ItemViewController의 첫 번째 섹션에있는 데이터가 변경되지 않습니다. 즉, 첫 번째 항목의 속성이 계속 표시됩니다. 내 tableView:cellForRowAtIndexPath:tableView:willDisplayRowAtIndexPath: 메서드 끝에 중단 점을 설정하고 표시되는 셀을 쿼리하면 textLabel/detailTextLabel 속성이 모두 정확함을 보여줍니다. 즉, 내부적으로는 정확히 내부 상태입니다. 그러나 UITableView 여전히 올바른 정보를 표시하지 않습니다.

도움을 주시면 감사하겠습니다. 지금 제가 보여주고있는 동영상을 YouTube에 녹화하고 업로드하고 있습니다. 사람들이 내가 바라는 것을 오해 할 수도있는 기괴한 문제이기 때문입니다.

편집 : 및 비디오 - http://www.youtube.com/watch?v=AwHTaHCQtX8&feature=youtube_gdata_player

편집 # 2 : 그래서,이 미친 짓 : 직선 디버깅 및 테스트 6 시간 후에는있는 NSManagedObject에 게터를 호출하여 애니메이션 문제가 발생 밝혀 오류가 발생했습니다 ... 아니오 아이디어. 없음. 나는 이것이 Core Data 질문의 일종이라고 생각합니다. 그래서 태그로 추가하고 있습니다.

답변

0

내용이 변경되었음을 표보기로 알려야합니다. 가능한 해결책은 ItemViewController의 viewWillAppear: 메서드에 [self.tableView reloadData]을 추가하는 것입니다.

그러나 menuItem 속성을 재정의하고 reloadRowsAtIndexPaths:withRowAnimation:/reloadRowsAtIndexPaths:withRowAnimation:을 사용하여 변경된 셀/섹션 만 오버로드하도록 코드를 추가하는 것이 좋습니다.

+0

내 코드가 질문에 설명 된대로 올바르게 셀을 생성 중입니다. reloadData를 다시 호출해도 도움이되지 않습니다. – refulgentis

+0

ItemViewController 인스턴스를 업데이트하고로드하는 MenuItemsViewController 메서드의 코드를 표시 할 수 있습니까? – Kentzo

0

첫 번째 테이블보기에서 항목을 선택하면 새 하위보기 컨트롤러를 만들고 NSManagedObject를 채우기 위해 자식에게 전달해야합니다. 클라이언트에서 부모에게 팝업되면, 자식은 dealloc으로 처리되어야합니다. 나는 당신이 비디오를 기반으로 한 자식보기 컨트롤러를 재사용하려한다고 의심합니다. 그렇지 않으면이 문제에 부딪히지 않을 것입니다.

시작해보세요. 사실 그것이 당신이하는 일임을 확인할 수 있습니까? 그렇지 않다면 왜 안 되겠습니까?

관련 문제