9

로테이션을 완벽하게 지원하는 앱이 있습니다. 나는 모호하게 UIImagePickerController을 추가했는데, 이는 UIInterfaceOrientationLandscape에 대한 지원이 없으며 컨트롤러를 세로로 유지할 수 없습니다.모달 UIImagePickerController 회전 방지하는 방법?

즉, UIImagePickerController의 회전을 비활성화해야 나머지 앱의 회전을 제거하지 않고 세로 방향으로 유지됩니다. 이것은 기본 것,하지만 나는 그것을 찾을 수 없습니다. 이 회전을 방지하려면 어떻게해야합니까?



UPDATE 제안으로

, 나는 다음과 같은 코드로 서브 클래스 시도 : 라인 브레이크 포인트와 전혀 충돌되지 않는

@interface UAImagePickerController : UIImagePickerController { 
} 
@end 

@implementation UAImagePickerController 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { 
    return UIDeviceOrientationIsPortrait(toInterfaceOrientation); 
} 
@end 

을 ... 나는 뭔가가 있어야합니다 생각 funky about the UIImagePickerView

+0

기록을 위해, 앱이 가로 방향을 지원하지 않더라도 iPhone 앱의 imagepickerview가 회전하는 것으로 나타났습니다. 따라서 카메라보기의 회전을 비활성화하는 "합법적 인"방법이없는 것 같습니다. 레이더 또는 적어도 변경 요청과 같은 소리입니다. – DaGaMs

답변

-2

서브 클래스 UIImagePickerController 그리고 그 새로운 클래스는 012를 구현해야합니다. 당신은 _isSupportedInterfaceOrientation를 오버라이드 (override) :, 아닌 shouldAutorotateToInterfaceOrientation한다

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 
+0

이 시도해 보았습니다 - 여전히 회전되었고 결코 실행되지 않았습니다. – coneybeare

+0

당신의 대답에 대한 부록으로, 당신은 항상 (지금은) 'UIDeviceOrientationIsLandscape'와'UIDeviceOrientationIsPortrait' 매크로를 사용해야합니다. 예를 들어, 적어도 2 가지 방향 (즉, 세로 방향 및 세로 방향 또는 가로 방향 및 가로 방향 오른쪽)을 지원하지 않는 iPad 앱은 거부됩니다. 이 매크로는 사용하는 가로 방향 또는 세로 방향 중 하나에서'YES'를 반환합니다. – jer

+0

@jer 1 방향 만 지원하는 iPad 앱을 제출했는데 거부되지 않았으므로 그 위치를 어디에서 그리는 지 확신 할 수 없습니다. 코드 자체는 새로운 뷰 컨트롤러 클래스를 만들 때 Xcode가 자동 생성하는 것이므로 거부하는 경향이 확실한 경우 Apple에 버그를 신고해야합니다. –

-4
+0

이것은 개인적인 방법이며 Apple에서 지원하지 않습니다. 권장되는 솔루션이 아니므로이 솔루션을 사용하면 아마도 거부 될 것입니다. – coneybeare

+0

고마워요 !!! 그러나 그것은 일이다. 거부 될 것인가는 구현에 달려 있습니다. 이를 확인하는 사람을 혼동시킬 수있는 방법이 있습니다.) – Dmitry

-4

은 그냥 ViewControllers의 @implementation 블록 이상이 들러 3,115,, 그것은 단지 세로로 회전이 같은 것을 만들려면 (.m 파일에서)

@implementation UIImagePickerController (portrait) 

- (BOOL)_isSupportedInterfaceOrientation:(UIDeviceOrientation)orientation 
{ 
    return UIDeviceOrientationIsPortrait(orientation); 
} 

@end 
+1

개인적인 방법은 Apple 개발자 계약을 위반하며 위험하며 어떤 프로덕션 환경에도 배치해서는 안됩니다. – coneybeare

-1

나는 내 UIImageP UIViewController에 내부 ickerController는 각각의 shouldAutorotateToInterfaceOrientation 방법을 구현하는 데 도움이

[self.view addSubview:myImagePicker.view]; 
[targetVC.navigationController presentModalViewController:self animated:YES]; 

희망처럼 발표와 함께.

관련 문제