2011-10-04 2 views
1

Je n'ai qu'un seul délégué d'application et contrôleur de vue dans mon application. L'application fonctionne en modes portrait et paysage. Selon moi, la méthode viewWillAppear du contrôleur que je reçois l'orientation du dispositif usisng code suivant:iPhone - l'affichage de l'orientation du périphérique dans l'affichage du premier contrôleur de vue apparaît

UIInterfaceOrientationIsPortrait([[UIDevice currentDevice] orientation]) 

première fois quand je suis en cours d'exécution de l'application, même si mon appareil est en mode portrait, son donnant le résultat que le paysage . Pourquoi est-ce le cas. Comment puis-je resoudre ceci?

Répondre

5

J'ai eu une tonne de problèmes avec currentDevice.orientation Essayez ceci:

UIDeviceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation]) 
0
UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation; 


if (UIDeviceOrientationIsLandscape(deviceOrientation) 
{ 
    //LandscapeView 
} 
else 
{ 
    //PortraitView 
} 
0

De la documentation UIDevice:

La valeur de cette propriété renvoie toujours 0 à moins d'orientation Les notifications ont été activées en appelant beginGeneratingDeviceOrientationNotifications.

Si vous regardez la valeur réelle retournée par 'orientation', vous verrez que c'était 'UIDeviceOrientationUnknown'.

Questions connexes