申し訳ありませんが、あなたが望むことは標準的な動作では不可能です。childViewController が特定の方向をサポートする場合、その親と現在の階層内の他のすべての ViewController もその方向をサポートする必要があります。
あなたがすべきことは、parentViewController を登録してデバイスの回転通知を受信することです。次に、それらに基づいて、childViewController のビューを変換できます。したがって、基本的にアプリは常に縦向きモードのままですが、childViewController のビューは横向きに見えるように変換されます。
次のようにデバイスの向きの通知に登録します
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(deviceDidRotate:) name: UIDeviceOrientationDidChangeNotification object: nil];
その後、このように処理します
// This method gets called everytime the device (!), not the viewController rotates
-(void)deviceDidRotate: (NSNotification*) notification
{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
// Animate the transform here based on the orientation
}
UIDeviceOrientation と UIInterfaceOrientation が逆になっていることに注意してください。UIDeviceOrientationLandscapeLeft = UIInterfaceOrientationLandscapeRight. デバイスが左に回転したため、ユーザー インターフェイスは右に回転する必要があります。