1

나는 마스터 - 세부 인터페이스를 제공하는 분할보기 기반의 응용 프로그램을 사용하며 세로 모드 일 때 팝 어버를 사용하여 마스터 목록을 제공합니다. Popover는 결국 서브 클래스 인 NSFetchedResultsController에 의해 채워지는 섹션 화 된 테이블 뷰를 제공합니다. 도구 모음 버튼을 탭하여 마스터 목록을 표시하고 행을 스크롤 한 다음 행을 탭하여 팝업을 닫을 수 있습니다.내 UITableView가 올바른 스크롤 위치에 나타나지 않는 이유는 무엇입니까?

내 문제는 테이블이 두 번째 섹션의 맨 위에 지나가고 팝업을 닫은 다음 나중에 도구 모음 단추를 눌러 다시 표시하면 테이블의 스크롤 위치가 항상 첫 번째 섹션 두 번째 섹션의 행이 목록의 맨 위에 있습니다. 두 번째 섹션의 맨 위에서 스크롤하지 않으면 테이블을 다시 표시 할 때 스크롤 위치가 올바르게 기억됩니다.

마찬가지로 가로 모드에서 세 번째 섹션의 맨 위에있는 테이블을 스크롤 한 다음 세로로 회전하면 가로로 돌아갈 때 스크롤 위치는 항상 세 번째 섹션의 첫 번째 행이 목록 상단에

마스터보기 컨트롤러 -viewWillAppear과 분할보기 대리자 splitViewController:popoverController:willPresentViewController:에서 모두 -scrollToNearestSelectedRowAtScrollPosition:animated을 호출 해 보았습니다. 아무 효과가 없습니다. 아무도 내가 뭘 잘못하고 있을지 모른다는 단서가 있습니까?

답변

2

tableView.contentOffset을 저장하려고 시도 했습니까?

CGPoint offset = tableView.contentOffset; 

... 
... 
... 

[tableView setContentOffset: offset]; 
+0

가장 실망스러운 문제가 그렇게 간단한 해결책이되는 이유는 무엇입니까? contentOffset 속성에 나를 묶어 주셔서 감사합니다. –

+0

@zbrimhall, 문제 없음 :) –

관련 문제