1

iOS 응용 프로그램에서 설명 할 수없는 이상한 동작을 발견했습니다.UINavigatorController popViewController : 애니메이션은 iOS 5.1에서 이상한 동작을 보이지만 iOS 6에서는 보이지 않습니다.

저는 UITabBarController Subclass에 내장 된 표준 UINavigationController를 사용하고 있습니다.

NavController에서 ViewController를 누르면 애니메이션이 잘됩니다. 그러나 ViewController가 Landscape에서 팝되면 팝업 애니메이션은 오른쪽에서 왼쪽으로의 표준 동작과는 달리 스크린 상단에서 하단으로 진행됩니다.

더 이상한 것은 TabBar가 애니메이션 모드에 포함되어 있으며 세로 모드에서는 그렇지 않습니다.

이것은 iOS 5 기기에서만 발생하며 현재로서는 이러한 현상이 발생하지 않는 이유를 알지 못합니다.

답변

9

해결책을 찾았습니다. 문제는 shouldAutorotateToInterfaceOrientation을 구현하는 첫 번째보기 컨트롤러가 UIInterfaceOrientationPortrait에 대해서만 회전을 허용하는 것입니다. 실제로는 (전역 적으로 허용되는) 방향으로 올바르게 회전 했으므로 분명하지 않았습니다.

따라서이 속성은 푸시 및 팝 동작에만 영향을줍니다. 이제 두 개의보기 컨트롤러 (첫 번째 및 두 번째보기 컨트롤러)는 shouldAutorotateToInterfaceOrientationreturn YES;으로 구현합니다. 이제는 애니메이션이 정확합니다 (왼쪽에서 오른쪽으로, 가로 모드에서 오른쪽으로, 왼쪽에서 오른쪽으로, 오른쪽에서 왼쪽으로).