0

私は UITabBarController である最初の ViewController を持つ UINavigationController を持っています。

これまでのところ、UINavigationController をサブクラス化し、それらのメソッドを実装しました。

- (BOOL) shouldAutorotate {
    return [self.visibleViewController shouldAutorotate];
}

- (NSUInteger)supportedInterfaceOrientations {
    return [self.visibleViewController supportedInterfaceOrientations];
}

したがって、自動回転するかどうかを選択するのは子コントローラーです...これまでのところ、UITabBarControllerの回転をブロックし、プッシュされたUIViewControllerの回転を許可することができました。

唯一のことは、UIViewController が横向きモードの場合、それをポップすると、UITabBarController も横向きモードになり、電話が縦向きモードになるまで、通常に戻り、もう回転しません.. .

ランドスケープUIViewControllerをポップすると、UITabBarControllerがすでにポートレートモードになっていることを望みます。

この新しい iOS 6.0 UI のローテーション管理は面倒なようです。

4

1 に答える 1

0

あなたが正しく言うように、デバイスは回転していないので、古いView Controllerがポップされたときに、表示されたView Controllerは向きを回転させることを主張しません。それが必要な動作である場合は、代わりに提示されたビュー コントローラーを使用してください。

ステータス バーを回転させることでインターフェイスを強制的に回転させることができますが、それsupportedInterfaceOrientationsは 0 を返す場合のみです。

于 2013-02-13T14:47:04.943 に答える