最近Xcode3.2から4.6に移動したナビゲーションベースアプリケーションがあります。
shouldAutorotateToInterfaceOrientationはiOS6で非推奨になり、特定のビューをUIDeviceOrientationLandscapeLeftのみに強制し、他のビューをUIDeviceOrientationPortraitのみに強制するために使用したため、対応するViewControllerに次のコードを追加します。
-(BOOL)shouldAutorotate{
NSLog(@"shouldAutorotate");
return YES;
}
-(NSInteger)supportedInterfaceOrientations{
NSLog(@"UIInterfaceOrientationMaskPortrait");
return UIInterfaceOrientationMaskPortrait;
}
-(BOOL)shouldAutorotate{
NSLog(@"shouldAutorotate");
return YES;
}
-(NSInteger)supportedInterfaceOrientations{
NSLog(@"UIInterfaceOrientationMaskLandscapeLeft");
return UIInterfaceOrientationMaskLandscapeLeft;
}
次に、ViewControllerがナビゲーションのみのログ「UIInterfaceOrientationMaskPortrait」にプッシュされ、デバイスが回転するとビューが回転します。(これは私が望むものではありません)[self presentModalViewController:]によって表示されるViewControllerは、「shouldAutorotate」と「UIInterfaceOrientationMaskLandscapeLeft」の両方をログに記録でき、デバイスが回転しても回転しません(これが私が望むものです)
ナビゲーションにプッシュされたビューを正しく機能させるにはどうすればよいですか?