質問

2つのuiviewcontrollers "a"と "b"があります。ここで、「a」はuiinterfaceorientationportraitでyesを返すように「a」がshoultatetointointerfaceorientationを上書きし、「b」はすべての方向に対してイエスを返します。私の例では、「A」はルートナビゲーションビューコントローラーです。その後、「B」にPushViewControllerを使用します。その後、デバイスをランドスケープに回転させ、「B」を自動調整し、「B」(バックボタンまたはPopViewController経由)をポップして「A」に戻ります。

iPhone OS 3.1.3をターゲットにするとき、「A」は予想どおりポートレートオリエンテーションに戻ります。 iPhone OS 3.2をターゲットにするとき、2つの副作用があります。

  1. 「A」は風景に表示されます。
  2. 「A」が表示されていても、ナビゲーションバーは更新されません。ナビゲーションバーには、「B」のアイテムがまだ表示されます。もう一度戻ってポップしようとした後にのみ、ナビゲーションバーはアニメーション化して「A」のアイテムを表示します。代わりに「b」を再び押して戻って戻ってみると、ポップしなければなりません 2回 ナビゲーションバーがアニメーション化する前に、「A」のアイテムを表示します。これらの「中間ポップ」の間、「a」のビューは表示されます。

この問題を調査している間、私は他の答えを手動で実行することを示唆する他の答え([uidevice setorientation]またはtranformationを介して)を見てきましたが、これは問題が何であるか、特に2つのOSの間で異なる動作をする理由を理解するのに役立ちません。

私の質問は、UinavigationControllerスタックのすべてのuiviewcontrollersが今後同じ方向をまったくサポートする必要がありますか?そうでない場合は、OS 3.1.3のように振る舞うために私がする必要があることはありますか?

役に立ちましたか?

解決

新しいOSは、同じ方向のセットをサポートするために、UinavigationControllerスタック内のすべてのuiviewcontrollersを必要とするようです。

他のヒント

私は同じ問題を抱えており、このリンクで答えを見つけました: uinavigationcontrollerナビゲーションスタックランドスケープモードの問題 私のビューコントローラーの1つは、shoultotatetointerfaceorientationでyesを返すことではありませんでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top