1

こんにちは、問題があります。デバイスが回転し始めたときに通知を開始するAppDelegate方法を使用しました。beginGeneratingDeviceOrientationNotificationsiPad を手で持つと問題なく動作しますが、テーブルに置くと期待どおりに動作しません。それはUIDeviceOrientationUnknown通知を起動します。また、この通知は、スプラッシュ画面ではなく UI の起動後に開始されます。

以下は私のコードです:

if([[[PulseUIFactory Factory] GetUICreator] IsIPad])
    {
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil];
    }
     current device stars giving proper values.
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

次に、UIを次のように起動する場所

[self Launch_UI];

[self Launch_UI];ただし、呼び出し前に通知が登録されていても、呼び出し後に通知が応答を開始します...

どんな助けでも大歓迎です!!!

4

1 に答える 1

0

デバイスをテーブルに置くと、[[UIDevice currentDevice] orientation]が返されUIDeviceOrientationFaceUpます。次に、デバイスが表を上にしてテーブルに置かれたままの場合、テーブル上でデバイスをどのように回転させても、現在のデバイスの向きは のままですUIDeviceOrientationFaceUp

デバイスの向きの判断に問題がある場合は、UIDeviceOrientationUnknown. を使用してデバイスの回転を処理する方法については、このチュートリアルを参照してくださいUIDeviceOrientationDidChangeNotification

UI がロードされた後にのみUIDeviceOrientationDidChangeNotification発生する通知に関しては、デバイスが回転したときにのみ発生します。そのため、UI が読み込まれるまでデバイスを回転させていないと、通知が届きません。これが問題の原因でない場合は、何が起こっているのかをよりよく理解するために、コードをもっと見る必要があります。

于 2013-05-13T00:32:45.203 に答える