2013-06-04 7 views
1

내 응용 프로그램은 주로 iOS6 +를 지원합니다. iOS5에 대해 고려할 때 다음과 같은 판단을 추가했습니다.새로운보기를 잘못 표시하는 iOS5, presentModalViewController

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0) { 
    self.modalPresentationStyle = UIModalPresentationFullScreen; 
    [self presentViewController:readerViewController animated:YES completion:NULL]; 
} 
else { 
    self.modalPresentationStyle = UIModalPresentationFullScreen; 
    [self presentModalViewController:readerViewController animated:YES]; 
} 

그러나 모달보기는 가로화 앱에서 세로로 표시됩니다. 내 애플 리케이션은 풍경, 모달보기 그냥 "거짓말"거기에, 내가 설정 한대로 전체 화면이 아니라, 화면의 일부를 커버 밝혀 동안 검은 색 의미합니다.

누군가 도움이 될지 궁금합니다. 고마워요.

답변

0

먼저 presentViewController:animated:completion:을 사용하실 수 있습니다. since iOS 5.0 버전에 대해 걱정할 필요가 없습니다. 당신이 정말로 방법의 유용성을 확인하려는 경우 경우, 당신은 모달 뷰를 들어

if ([self respondToSelector:@selector(presentViewController:animated:completion:)]) 

를 사용해야합니다, 당신은 발표 컨트롤러 예에 modalTransitionStylemodalPresentationStyle를 설정해야 귀하의 경우에는 readerViewController입니다. 따라서 코드는

readerViewController.modalTransitionStyle = UIModalPresentationFullScreen; 
readerViewController.modalPresentationStyle = UIModalPresentationFullScreen; 
[self presentModalViewController:readerViewController animated:YES completion:NULL]; 
+0

당신의 방법은 모달보기를 제공합니다. 그러나 중요성은 내가 설정 한대로 전체 화면이 아니라 단지 "거짓말"한다는 것입니다. 나는 또한 시도 [self.presentingViewController presentViewController : readerViewController 애니메이션 : 예 완료 : NULL]; 그러나 효과가 없었습니다. – Calios

+0

어쩌면 나는 몇몇 세부 사항을 놓쳤는가? 부모 뷰는 모든 방향의 가로 및 모달 뷰를 지원합니다. iOS6 +에서는 모달 뷰에서 모달 뷰를 제공하므로 제대로 작동합니다. iOS5에서 문제가 발생합니다. 버전 문제가 아닌 경우 다른 문제는 무엇입니까? 당신은 그것을 생각할 수 있습니까? – Calios

1

이어야합니다. 라일락 : - 정확한 말은 틀림 없습니다. 당신은 버전에 대해 걱정할 필요가 없다. 나는 당신이 필요한 뷰 Oreintation을 가진 ModalView를위한 오리엔테이션을 설정하지 않았다고 생각한다.

modalView를 제공하는 mainViewController가 Landscape 모드 만 지원하는 경우 modalViewController에서 Orientation을 설정해야하며 Landscape View에만 표시되도록 제한해야합니다.

mainViewController로 작성된 오리엔테이션 코드도 modalViewController에 작성해야합니다.

이러한 방법 : - 그것은 문제가 해결되지 않으며, 도움 않는 경우에, 당신이 무엇을 알고있는 경우

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 
    // return YES; 

} 

-(BOOL)shouldAutorotate{ 
    return YES; 
} 

-(NSUInteger)supportedInterfaceOrientations{ 
    return UIInterfaceOrientationMaskLandscape; 
} 

가 친절하게 복귀).

+0

나는 위층에서 언급 한 방법을 사용하고 있으며,이 문제는 오래 전부터 자동 회전 문제의 스트레칭이다. 부모 뷰는 모든 방향의 가로 및 모달 뷰를 지원합니다. iOS6 +에서는 모달 뷰에서 모달 뷰를 제공하므로 제대로 작동합니다. iOS5에서 문제가 발생합니다. 버전 문제가 아닌 경우 다른 문제는 무엇입니까? 당신은 그것을 생각할 수 있습니까? – Calios

관련 문제