ModalViewController は、現在のワークフローを中断し、新しいビューのセットを表示するために使用されます。したがって、モーダルに表示する場合、この場合は B を表示しているため、現在アクティブな Viewcontroller は B であり、A ではありません。
ViewController は、Model-View-Controller (MVC) デザイン パターンの従来のコントローラー オブジェクトです。また、ユーザー インターフェイス、ジェスチャ認識、イベント管理 (ボタンなど)、およびそれらに存在するビューの配置も処理します。
B を提示すると、現在のビューコントローラーが A から B に変更されたため、回転しようとすると (向きのサポートが提供されている場合)、B のビューはビューコントローラーがアクティブであるために影響を受け、回転に応答します。ビューは不透明であるため、通常、これらは気付かれません。あなたの場合、ビューは透明で、A が回転に応答していないことがわかります。
上記の例をiOS6で試しました(あなたが言及したものから)
ViewController2 *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"VC2"];
vc.view.backgroundColor = [UIColor clearColor];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:vc animated:YES completion:nil];
ここで A はポートレート モードのままです
2番目のビューコントローラーのビューをサブビューとして追加すると、Aがランドスケープに変更されました
ViewController2 *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"VC2"];
vc.view.backgroundColor = [UIColor clearColor];
self.view addSubview:vc.view];
これは、B のビューが A に追加されたサブビューであったため、2 回目の試行でアクティブなビューコントローラーが B ではなく A であったために発生しました。