0

대부분의 ViewController에 내비게이션 컨트롤러가있는 iOS 6 iPad 앱이 있습니다. 이 모든 견해들에서 저는 방향이 단지 경치가되기를 원하며, 그것은 잘 작동합니다. Navigation Controller가없는 View Controller가 하나 있습니다. Navigation Controller의 Top View Controller 위에보기 만 열었지만 모달은 아닙니다. 사용자가 해당 View Controller에서 화면의 방향을 변경할 수 있지만 나머지 모든 항목은 가로로 유지할 수 있어야합니다. 이것은 내가 할 것입니다 :내비게이션 컨트롤러가없는 ViewController의 화면 방향

네비게이션 컨트롤러의 서브 클래스 :

-(NSUInteger)supportedInterfaceOrientations { 
return UIInterfaceOrientationMaskLandscape; 

} 

-(BOOL)shouldAutorotate { 
    return UIInterfaceOrientationIsLandscape(self.interfaceOrientation); 
} 

그리고 여기에 내가 가로 및 세로 모두 갖고 싶어 특정 뷰 컨트롤러에 대해 같은 방법이 있습니다 :

- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskAll; 
} 

- (BOOL)shouldAutorotate { 
    return YES; 
} 

이후는 이 View Controller에는 내비게이션 컨트롤러가 없습니다. 이것이 문제를 해결할 것이라고 확신했습니다. 그러나 어떤 이유로 나는이 View Controller에서 화면을 뒤집을 수 없습니다.

UIWindow *window = [[UIApplication sharedApplication].windows objectAtIndex:0]; 
[[window.subviews objectAtIndex:0] addSubview:previewView]; 
+0

나는 이러한 견해를 가지고 별도의 오리엔테이션 구성이 가능 여기에 내 질문에 오히려 것, 그래서 나는이보기를 표시하는 방식은,이 뒤에 이유가 있는지 생각? – jahsiotr

답변

0

는은을 참조 : 어쩌면이이 뒤에 이유입니다 - 여기에 내가보기 컨트롤러는 것을 보여주는 방법입니다 이 특수보기 컨트롤러를 표시하는 방식으로 방향을 바꿀 수 없게됩니다. 장치가 방향을 바꿀 때 키 윈도우의 rootController에 문의 할 수 있는지 여부를 묻습니다 ntate 여부에 관계없이 상황에 따라 가로 모드를 반환하므로 가로 모드 만 지원됩니다.

그래서 애니메이션없이 navigationController에서 표현해야합니다. 특수 뷰 컨트롤러에 - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation을 구현하는 것보다.

추가 읽기 : Understand ViewController Orientation

0
- (NSUInteger)supportedInterfaceOrientations { 
return UIInterfaceOrientationMaskAll; 
} 

변경이

- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskLandscape; 
} 

If you have more doubts 

에 사실이 How can I display one UIView in landscape?

+0

@jahsiotr 방향을 변경하려는 뷰 컨트롤러에서 이것을 변경하십시오. – iCoder

+0

View Controller가 방향을 변경하지 못하도록 차단하지 않습니까? 내가 필요한 것은 사용자가 그 하나의 특정 View Controller에 대한 방향을 바꿀 수있게하고 나머지 모든 것들을 보지 못하게하는 것입니다. – jahsiotr