2013-05-21 5 views
3

[이는 Apple Developer Forums에 게시 되었으나 대답하지 않은, 그래서 여기에 노력하겠습니다.]UISplitViewController 장치의 회전을 인식하지 못하는

내 응용 프로그램이 UISplitViewController 아이 패드 마스터/세부 사용 iOS 6에서 실행되며 실행됩니다. 분할보기 컨트롤러는 해당 창에 대한 루트보기 컨트롤러입니다. 상세 뷰는 주로 UINavigationController에 포함 된 UIWebView로 구성됩니다. 상세보기의 유일한 다른 요소는 탐색 컨트롤러가 제공하는 도구 모음과 탐색 모음입니다. 웹보기에 포함 된 YouTube 동영상이있는 페이지가 표시되면 사용자는 동영상을 전체 화면으로 만들 수 있습니다. 이것은 모두 UIWebView에 의해 완료됩니다 --- 나는 전체 화면 비디오 플레이어를 만드는 책임이 없습니다. 문제가되는 경우 비디오 플레이어가 전체 화면보기로 전환되면 UIApplication 공유 인스턴스의 keyWindow는 비디오 재생 중 주 응용 프로그램 창이 아니라 MPFullScreenTransitionViewController의 인스턴스입니다.

이 전체 화면 재생 중에 사용자가 장치를 회전 한 다음 재생을 끝내면 UISplitViewController가 해당 자식을 제대로 배치하지 않습니다. 방법

splitViewController:willHideViewController:withBarButtonItem:forPopoverController: 

및 대리자
splitViewController:willShowViewController:invalidatingBarButtonItem: 

(이 경우, 상세보기 제어기)가 호출되지된다.

전체 화면 비디오를 재생하는 동안 장치를 가로 방향으로 회전 한 경우 동영상 플레이어를 닫으면 이전 막대 단추 항목을 유지하는 상세보기 컨트롤러가 표시되어 Popover (버튼을 가볍게 두드려도 아무런 반응이 없지만). 마스터 뷰 컨트롤러를 그려야하는 경우 검정색 영역 만 존재합니다. 자세히보기 컨트롤러에서 오른쪽으로 스 와이프하면 검정 영역을 덮고있는 마스터보기 컨트롤러가 슬라이드 아웃되지만 영구 뷰가 아니라 계속 팝 오버로 존재합니다.

전체 화면 비디오를 재생하는 동안 장치가 세로 방향으로 회전 된 경우 동영상 플레이어를 닫으면 팝업보기에 마스터보기 컨트롤러를 그리는 막대 단추 항목이없는 상세보기 컨트롤러가 표시됩니다. 상세 뷰 컨트롤러의 너비가 정확하고 마스터 뷰 컨트롤러가 표시되지 않으므로 누락 된 막대 버튼 항목을 제외하고 세부보기의 모양이 거의 예상대로입니다.

잘못된보기가 나타난 후에 수동으로 장치를 돌리면 적절한 응용 프로그램 기능이 복원됩니다. 그러나 그리기 문제를 해결하기 위해 사용자가 장치를 돌리거나 두 번 돌리는 것은 분명히 용납되지 않습니다.

분할 뷰 컨트롤러가 모달 동영상 플레이어 뒤에 모든 자식이 사라졌을 때 장치 회전을 인식하도록하는 방법이 있습니까?

답변

2

답변은 Apple 개발자 포럼의 사용자 SamuraiZack이 제안했습니다. UISplitViewController 대리자에서 viewWillAppear에서 스플릿 뷰 컨트롤러 레이아웃 작업을 강제 :

[self.splitViewController.view setNeedsLayout]; 
[self.splitViewController.view layoutIfNeeded]; 

원래 응답

Apple Developer forums에서 볼 수있다.

관련 문제