2011-08-04 3 views
1

こんにちは私は問題がある 私のAppDelegateで私は方法beginGeneratingDeviceOrientationNotificationsを使用して、デバイスが回転を開始したときに通知を開始しました。 私はipadを手持ちにしてもうまく動作しますが、テーブルに保管されていると期待通りに動作しません。 それはUIDeviceOrientationUnknown通知を発します。 また、この通知は、UIの起動後にスプラッシュ画面で開始されます。私のコードで、次のデバイスがテーブル上にある間、UIDeviceOrientationDidChangeNotificationは機能しませんか?

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]; 

その後、いくつかの私は

[self Launch_UI]; 

としての私のUIを起動しますが、通知は、通知は、その呼び出しの前に登録されている場合でも[self Launch_UI];呼び出した後、応答始まる...

ご了承ください。

答えて

0

テーブルにデバイスを置くと、[[UIDevice currentDevice] orientation]UIDeviceOrientationFaceUpを返します。あなたのデバイスが表の上に座っていても、テーブル上でどのように回転させるかは関係ありませんが、現在のデバイスの向きはまだUIDeviceOrientationFaceUpです。

デバイスの向きの決定に問題がある場合は、UIDeviceOrientationUnknownが表示されることがあります。 UIDeviceOrientationDidChangeNotificationを使用してデバイスローテーションを処理する方法については、thisチュートリアルを参照してください。

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

関連する問題