0

私は今、この問題に2週間以上立ち往生しています!私のプロジェクトでは、横向きと縦向きの両方を有効にしたい単一のViewController(スライド)が1つあります。残りのすべてのコントローラー/ビュー(スライド)は、縦向きモードのみを有効にします。

トリッキーな部分は、私が参照している「ViewController」がNavigationControllersとTabBarControllersの両方に接続されていることです。ランドスケープ/ポートレートの両方を有効にするViewControllerの名前が、ReferredViewControllerである以下のスキームを参照してください

TabBarController ----> NavigationController ----> FristViewController-(プッシュイベント)-> ReferredViewController

これまで、NavigationControllersとTabBarControllersの両方のカテゴリを作成しようとしました。しかし、私のNavigationControllersとTabBarControllersはプロジェクトの最初に配置されているため、これによりプロジェクト全体のルールが設定されます。私のReferredViewControllerは、プロジェクトの「ストーリーボード」の最後または途中に配置されます。単一のReferredViewControllerについてもコードでルールを設定しようとしましたが、成功しませんでした。

これまでのところ、私のベストショットは、FirstViewControllerとReferredViewControllerの間のイベントを「プッシュ」から「モーダル」に変更することです。その後、ReferredViewControllerはポートレート/ランドスケープの両方を回転でき、プロジェクトの残りの部分はポートレートでロックされます。ただし、ご存知かもしれませんが、すべてのナビゲーションが失われ、ユーザーはその1つのスライドでスタックします。

私も疑問に思うことの1つは、ModalViewControllerでNavigationControllersを表示することは可能ですか?私はこのシナリオをすべての可能な方法で試したりテストしたりしていませんが、問題の確認をいただければ幸いです。

上記のスキームに関する賢いヒントや動きがあれば、私が得ることができるすべての助けが必要です、私はこれを解決できないことにとてもイライラしています!/よろしく

4

1 に答える 1

1

問題は、リンゴのデザインでサポートされていないことをしていることです。タブバーの回転に関するその問題はよく知られており、ここでそのトピックに関する多くの投稿がstackoverflowで見つかります。
リンゴの設計戦略では、最上位のコントローラーが両方の回転を許可する必要があり、サブコントローラーのみがそれを1つの方向に減らすことができます。
あなたがそれを逆に望むなら、一番上のサポートポートレート、そして両方の子供たち、あなたはあなた自身です。
アップルによってサポートされていないこれらのものは非常に時間がかかります。
私はその状況にあり、didRotate ..()は呼び出されませんでした。CGtransform ...を使用してビューを自己回転させることで、最終的に解決しました。この情報は、stackoverflowで取得しました。

これを解決するには、2つのビューコントローラを使用します。1つは両方の方向を許可し、もう1つは1つだけを許可します。コードの重複を避けるために、継承されたクラスから共通コードを呼び出すことができます。

于 2012-12-18T00:40:20.430 に答える