私は今、この問題に2週間以上悩まされています! 私のプロジェクトでは、横向きと縦向きの両方を有効にしたい単一のViewController(スライド)があります。残りのすべてのコントローラー/ビュー(スライド)は、縦向きモードのみを有効にしたいです。
トリッキーな部分は、私が参照している「ViewController」が、NavigationControllers と TabBarControllers の両方に接続されていることです。横向き/縦向きの両方を有効にしたい ViewController の名前が付けられている以下のスキームを参照してください: ReferredViewController.
TabBarController ----> NavigationController ----> FristViewController --(プッシュイベント)--> ReferredViewController
これまでのところ、NavigationControllers と TabBarControllers の両方のCATEGORYを作成しようとしました。しかし、NavigationControllers と TabBarControllers はプロジェクトの最初に配置されているため、プロジェクト全体のルールが設定されます。私の ReferredViewController は、プロジェクトの「ストーリーボード」の最後または途中に配置されます。単一の ReferredViewController に対してもコードでルールを設定しようとしましたが、成功しませんでした。
私のベストショットは、FirstViewController と ReferredViewController の間のイベントを「プッシュ」から「モーダル」に変更することです。その後、ReferredViewController は縦向き/横向きの両方を回転させることができ、プロジェクトの残りの部分は縦向きにロックされます。しかし、ご存知かもしれませんが、すべてのナビゲーション (NavigationBar) が失われ、ユーザーはその 1 つのスライドで動けなくなります。
そのため、 ReferredViewController.m ファイルで次のコード例を使用して、NavigationBar を有効にしようとしています。
ShowTaskViewController *detailViewController = [[ShowTaskViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
navController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self.navigationController presentModalViewController:navController animated:YES completion:nil];
[navController release];
[detailViewController release];
しかし、何も起こらないことが多く、私は再び振り出しに戻ります :O. FML!