2013-09-29 1 views
0

iPhone과 iPad (iPhone과 iPhone 모두)와 호환되는 아주 오래된 앱이 있습니다. 그리고 iOS 7과 호환되도록 큰 문제가 있습니다!iOS 3.2에서 iOS 7로 인터페이스 방향이 일치하지 않음

사실, ARC, 스토리 보드, 그리고 우리가 요즘 함께 즐겨 사용하는 구문 설탕은 오래 전에 작성되었습니다. 그리고 약간의 인터페이스 방향 문제를 이해하려고 애 쓰고 있습니다.

iPhone의 경우 앱은 가로로만 표시됩니다 ... 주 ViewController에는 문제가 없습니다. 하지만 설정 하나 (그것에있는 UITableView와 간단한 ViewController) 항상 세로로 표시됩니다 !!! 내가 설정 한 속성과 필자가 작성한 방법이 무엇이든간에.

.plist에서 나는 방향 방향 LandscapeLeft 및 Right 만 지원합니다. 설정보기 컨트롤러에서, 나는 그 방법이 있습니다

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return UIInterfaceOrientationIsLandscape(interfaceOrientation) || (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPhone); 
} 

- (BOOL) shouldAutorotate { 
    return YES; 
} 

- (NSUInteger)supportedInterfaceOrientations { 
    return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)?UIInterfaceOrientationMaskLandscape:UIInterfaceOrientationMaskAll; 
} 

하지만 정말 날 귀찮게 내가 self.interfaceOrientation를 표시 할 때합니다 (viewWillAppear, viewDidAppearviewWillLayoutSubviews에서) 풍경을 말한다는 것이다.

하지만 가장 이상한 점은 Portrait ViewController를 통해 상태 표시 줄이 가로로 표시된다는 것입니다.

그래서 만약 어떤 사람이 모든 풍경에 그의 ViewController를 다시 넣어 도움이 될 수 있습니다 (물론, 문제는 장치와 시뮬레이터에 모두 나타납니다). 미리 감사드립니다!

+0

iOS 3 (또는 4)에서 누군가를 사용하고 있는지 여부와 그 버전을 계속 지원해야하는지 여부를 보여줄 분석이 있습니까? – Wain

+0

예, 불행하게도. 그러나 iOS 5 이상에서 작동하는 솔루션을 가지고 있다면 기쁜 마음으로 듣고 iOS 4로 다시 가져올 것입니다. ... – Zaphod

+0

당신은 plist가 가로 모드라고 말했습니다. 저기 초상화도지지해야하지 않니? 그런 다음 뷰 컨트롤러에 의해 뷰 컨트롤러를 허용 된 방향으로 지정하십시오. – Rob

답변

0

음, 드디어 찾았습니다 !!!

ViewControllers (이전 iOS 3 방법)간에 전환하는 방식으로 인해 문제가 발생했습니다.

그래서 수정하려면 presentViewController:animated:completion 메서드가 사용 가능한지 테스트합니다 (신의 축복은 respondsToSelector:). 가능한 경우 사용할 수 있습니다.

문제가 해결되었습니다.