2011-08-04 6 views
1

Salut là j'ai un problème, Dans mon AppDelegate j'ai utilisé la méthode beginGeneratingDeviceOrientationNotifications pour commencer à me notifier lorsque l'appareil commence à tourner. Cela fonctionne bien si je main-tenu mon ipad mais quand il est maintenu sur la table il ne fonctionne pas comme prévu. il déclenche la notification UIDeviceOrientationUnknown. Cette notification est également lancée après le lancement de l'interface utilisateur sur l'écran de démarrage.UIDeviceOrientationDidChangeNotification ne fonctionne pas lorsque le périphérique est sur la table?

Voici mon code:

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

puis certains où je lance mon interface utilisateur comme

[self Launch_UI]; 

mais la notification commence à répondre après [self Launch_UI]; appel, même si la notification est enregistrée avant son appel ...

S'il vous plaît toute aide est appréciable !!! Lorsque vous placez votre appareil sur une table, [[UIDevice currentDevice] orientation] renverra UIDeviceOrientationFaceUp.

Répondre

0

Ensuite, si votre appareil reste assis sur la table face visible, peu importe comment vous le faites pivoter sur la table, l'orientation actuelle du périphérique sera toujours UIDeviceOrientationFaceUp.

Si l'appareil a des problèmes pour déterminer l'orientation, vous pouvez obtenir UIDeviceOrientationUnknown. Voir this tutoriel sur la façon de gérer la rotation de l'appareil en utilisant UIDeviceOrientationDidChangeNotification.

En ce qui concerne le déclenchement de votre notification uniquement après le chargement de l'interface utilisateur, le UIDeviceOrientationDidChangeNotification ne se déclenchera que lorsque l'appareil est pivoté. Donc, si vous ne faites pas tourner votre appareil avant le chargement de l'interface utilisateur, vous ne recevrez pas de notification. Si ce n'est pas la cause du problème, je devrais voir plus de votre code pour avoir une meilleure idée de ce qui se passe.

Questions connexes