4

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 を使用したくありません。

4

1 に答える 1