2011-02-01 2 views
-1

사용자 지정보기 컨트롤러 계층 구조가 있습니다. 하위보기 컨트롤러가 사용자 지정 부모보기 컨트롤러에 단순히 하위보기로 추가됩니다. 또한 부모보기 컨트롤러는 올바른 시간에 하위보기 컨트롤러의 -[willRotateToInterfaceOrientation:duration:]-[didRotateFromInterfaceOrientation:] 메서드를 호출합니다.보기 컨트롤러 계층 구조에서 interfaceOrientation 속성을 올바르게 설정하는 방법은 무엇입니까?

모든 것이 제대로 작동하는 것처럼 보입니다. 그러나 어떤 이유로 든 interfaceOrientation 속성이 올바르게 설정되어 있지 않습니다. 항상 UIInterfaceOrientationPortrait입니다.

가로로 회전 할 때 하위보기 컨트롤러의 값이 interfaceOrientation이되도록하려면 어떻게해야합니까?

답변

1

어쨌든 공개 API를 사용할 수 없다고 생각합니다. 또한 그렇게하려는 의도는 iOS 앱의 권장 디자인을 따르지 않는다는 것을 의미합니다. View Controller Programming Guide

주의 조언을 고려 : 여러 하위 영역으로 뷰 계층을 분할하고 개별적으로 하나 하나를 관리하려면 각을 관리하는 대신 뷰 컨트롤러 객체의 일반적인 컨트롤러 객체 (NSObject의에서 내림차순 사용자 정의 객체)를 사용 하위 영역. 그런 다음 단일 뷰 컨트롤러 개체를 사용하여 일반 컨트롤러 개체를 관리합니다.

UIViewController는 전체 화면 상당의 콘텐츠를 관리하기위한 것입니다. 그 가정을 위반하면 프레임 워크와 싸우면서 예상대로 행동하게됩니다.

+0

iPad의 분할보기 컨트롤러가이 규칙을 위반하는 것 같습니다 (분할보기의 일부는 본격적인보기 컨트롤러로 관리됩니다). 사용자 정의 분할보기 컨트롤러를 구현하고 싶다면 어떻게해야할까요? 너 할 수 없어? – user102008

+0

user102008을 바로 잡으십시오, 지금 Apple은 컨테이너 뷰 컨트롤러를 구현할 수 있습니다.하지만 우리는 공개 API를 사용하여 동일한 작업을 수행 할 수 없습니다. iOS 5가이 기능을 변경하지만 그때까지는 여러 UIViewController의 뷰를 한 번에 표시하지 못하게 할 것입니다. 대신 제네릭 컨트롤러 개체를 사용하십시오. – Jonah