미국에서 행복한 기념일!UITabBarController 및 순환 iOS6
iOS 및 Objective-C 프로그래밍을 처음 사용합니다. 몇 주 전에 iOS 5 용으로 설계된 iPad app-in-development를 계승했습니다. 이제 iOS 6의 회전을 제외하고는 모든 것이 작동합니다. iPad 앱이 모든 방향으로 회전해야한다는 것을 알고 있습니다. 원하는), 아직 내 것은하지 않습니다. 모든 것이 iOS 5에서 완벽하게 회전합니다. iOS 6에서 스플래시 화면을 완벽하게 회전시킬 수는 있지만 그게 전부입니다. 제대로 회전하려면 스플래시 화면을 클릭 한 후 활동을 가져올 수 없습니다.
stackoverflow 및 다른 웹 사이트에서 수행해야 할 작업을 알아 내기 위해 -(BOOL)shouldAutorotate
및 -(NSUInteger)supportedInterfaceOrientations
을 특정 ViewController에 구현하여 해당보기의 방향 동작을 제어해야한다는 것을 알고 있습니다. 한 VC에서 다른 회전 동작이 전체 앱에 영향을 미칠 수 있다는 것을 읽었습니다. 그래서 나는 ** 찾을 수있는 모든 VC가 YES
과 UIInterfaceOrientationMaskAll
을 각각 반환하는 두 개의 IOS 6 메소드를 구현할 것이라고 확신했습니다. 그것은 작동하지 않았다. 이러한 방법으로 self.tabBarController.shouldAutorotate
및 self.tabBarController.supportedInterfaceOrientations
을 반환하는 방법에 대해 읽으므로 탭 표시 줄의 회전 동작이 일관되게 유지되지만 작동하지 않습니다. 이 두 가지 방법을 구현하는 범주 (UITabBarController + autoRotate.m 및 .h) 구현에 대해 읽었으며 작동하지 않습니다. 나는 tabBarController를 서브 클래스에 대해 읽고, 나는 내 코드가 않습니다 생각 : 내 AppDelegate에, 나는이
[myWindow setRootViewController:activityViewController]
를 호출
@interface BicycleFamilyActivityViewController : UIViewController <UITabBarControllerDelegate>
iOS 6 시뮬레이터를 사용하여 성공적인 스플래시 화면 회전 중에 호출되는 것을 조사 할 때 BicycleFamilyAcitivityViewController의 두 구현 된 메소드가 호출되고 있음을 알았습니다 (실제로 각각 두 번). 그 -(void)willAnimateRotationToInterfaceOrientation:duration
그뿐만 아니라입니다. 스플래시 화면을 클릭 한 후 활동을 보면서 회전하려고하면 두 메서드는 한 번만 호출되고 -(void)willAnimateRotationToInterfaceOrientation:duration
은 호출되지 않습니다. 두 경우 모두 appDelegate의 -(NSUInteger)application:supportedInterfaceOrientationsForWindow
메서드가 호출됩니다.
전체 앱에서 순환 게재를 수행하는 방법에 대한 조언이 있으십니까? StackOverflow에서 아직 보지 못한 (또는 완전히 이해 된) 대답을 가리키고 있다고해도, 나는 가장 감사 할 것입니다.
미리 감사드립니다.
Thanks John, preferredInterfaceOrientationForPresentation을 제외하고 viewController에서 해당 메소드를 구현했습니다. 나는 그 차이를 만든 사람을 위해 각 viewController에 그 메소드를 추가했다. 그러나 은 아니었다. 개별 viewController에 shouldAutorotate 및 supportedInterfaceOrientations가 호출되지 않음을 알고 있습니다. 시스템을 호출 할 수 있다면 모든 것이 제자리에 있어야한다고 생각합니다 (회전이 iOS 5에서 완벽하게 작동하기 때문입니다). 다른 제안 사항이 있으십니까? – Bernie
올바른 답변이기 때문에 답을 뽑습니다. 하지만 나는 그렇게하기 위해 15의 평판이 필요합니다! – Bernie
나는 아직 그것을 이해하지 못했다. 내 rootVC (BicycleFamilyActivityViewController)의 shouldAutoRotate 및 supportedInterfaceOrientations 메소드가 회전 할 때 호출되고 YES 및 UIInterfaceOrientationMaskAll을 반환하지만 탭바 또는 아무 것도 회전시키지 않는 것 같습니다. 이 메서드에서 subViewController의 해당 메서드에 대한 호출을 작성할 수는 있지만 도움이되지 않습니다. – Bernie