ナビゲーションコントローラーに3つのビューコントローラーを追加しました。1番目と2番目のViewControllerは両方の方向をサポートする必要がありますが、3番目のViewControllerはランドスケープモードのみをサポートします。しかし、ポートレートモードで2番目のビューコントローラから3番目のビューコントローラに移動すると、ポートレートモードで表示されます。どうすればこれを修正できますか?横向きのみをサポートするには、3番目のビューコントローラーが必要です。
質問する
824 次
1 に答える
0
これは iOS 6 の回答です。
UINavigationController がその子の回転設定を尊重するようにするには、それをサブクラス化し、以下をオーバーライドします。
- (BOOL)shouldAutorotate
{
return self.topViewController.shouldAutorotate;
}
- (NSUInteger)supportedInterfaceOrientations
{
return self.topViewController.supportedInterfaceOrientations;
}
これは、新しい UINavigationController を作成するとき、および以前のビュー コントローラーにポップバックするときに機能します。詳細はこちら - UINavigationController の ViewController の向きの変更
新しいView Controllerをプッシュするときに機能させるには、これをサブクラスに追加します:
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[super pushViewController:viewController animated:animated];
UIViewController *viewController = [[UIViewController alloc] init];
[self presentViewController:viewController animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];
}
移行は少し不快ですが、仕事は完了します。詳細はこちら -横向きから縦向きへの pushViewController の問題
于 2013-07-01T21:09:42.650 に答える