A と B の 2 つのビュー コントローラーがあります。A はポートレートのみをサポートし、代わりに B はランドスケープをサポートできます。封じ込め API を使用して B を表示しています。
[self addChildViewController:child];
[self.view addSubview:child.view];
child.view.frame = self.view.bounds;
[child didMoveToParentViewController:self];
実装しました
- (BOOL)shouldAutorotate
{
UIViewController *current = _presentingChild ? _child : self;
return [current shouldAutorotate];
}
- (NSUInteger)supportedInterfaceOrientations
{
UIViewController *current = _presentingChild ? _child : self;
return [current supportedInterfaceOrientations];
}
すべてが魅力のように機能します。A を提示しているときにデバイスが横向きで、B を提示している場合、回転はすぐに変わります。
Bを閉じると問題が発生します。デバイスが横向きの場合、Aは横向きに表示されます(これは発生しないはずです)。
この問題に直面する方法について提案はありますか? モーダルコントローラーを使用できることはわかっており、それで問題が解決します。しかし、この特定の状況ではモーダル VC を使用したくありません。