1

UI の自動回転 (だけでなく) に関して、非常に興味深い (しかし非常に厄介な) 問題が発生しています。私は、タブ項目としていくつかのナビゲーション コントローラーを備えたタブバー コントローラーを含むアプリに取り組んでいます。これらのコントローラーの 1 つは、横向きモードへの自動回転を可能にします。

興味深いのは、自分のデバイスだけでなく、シミュレーターでも完全に機能することですが、他のテスト デバイスでは機能しません。すべてのデバイスは同じです - iPhone 3G 16 GB、OS バージョン 3.1.3。

コンソールで向きの変更イベントを報告するログ メッセージを探していると、自分のデバイスでのみ見つけることができますが、他のデバイスでは見つけることができないため、他のデバイスでは向きの変更がまったく報告されないようです。一方、他のアプリは正常に動作しているため、これはほとんどありません... また、私の電話で動作している他の機能のいくつかは、他のデバイスでも動作していません (たとえば、テーブルビューで処理されるタッチイベント)。

私はこのようなものを見たことがなく、すべてのデバイスで同じように動作しない理由を見つけることができません! 問題は、私が怒っているのか、それとも何なのかということです。

オーバーライドされたメソッドで UITabBarViewController のサブクラスを使用します

- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) toInterfaceOrientation {
    BOOL shouldRotate = (toInterfaceOrientation == UIInterfaceOrientationPortrait || toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft);

    NSLog(@"Should rotate: %d", shouldRotate);
    return shouldRotate;
}

次に、それぞれのメソッド (willRotate...、willAnimateRotation...) で方向変更アニメーションを処理します。しかし、私が言ったように、私のデバイスでは問題なく動作しますが、他のデバイスでは shouldAutorotateToInterfaceOrientation: メソッドが呼び出されることはありません。変!

マッドハウスで終わる前に、ヒントをください。ヒントをありがとう。

4

0 に答える 0