6

J'ai des problèmes pour obtenir mon application iPad pour détecter son interfaceOrientation dans le premier UIViewController que j'initialise (en code). En fait, si je trace pour application.statusBarOrientation, cela renvoie aussi 1 (UIInterfaceOrientationPortrait) même si j'ai lancé en mode paysage.Comment détecter l'interfaceRotation d'un iPad au démarrage?

Si je trace self.interfaceOrientation dans mon premier UIViewController, il reste 1 jusqu'à ce qu'il arrive à voirWillDisappear ... Ce qui est malheureusement trop tard!

est ici un code (même si il n'y a pas grand-chose à voir):

Dans mon appDelegate j'ai ceci:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    // show loading screen first 
    [window addSubview:loadingScreenViewController.view]; 
    [window makeKeyAndVisible]; 

    NSLog(@"applicationDidBecomeActive:statusBarOrientation = %d", application.statusBarOrientation); 
    return YES; 
} 

qui trace 1 (portrait), même si je vois clairement la barre d'état est paysage ... et dans la première vue contrôleur j'ai ceci:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSLog(@"self.interfaceOrientation = %d", self.interfaceOrientation); 
} 

qui trace également 1, même en mode paysage.

Des idées? Stumped ici!

Merci :)

: -Joe

+0

J'ai créé un travail autour, mais ce n'est pas grande ... je charger l'image de portrait dans le viewController par défaut, puis lorsque le VC reçoit un willRotateToInterfaceOrientation soit landscapeLeft ou à droite, il écrasera l'image avec le bon. Par conséquent, il est effectivement plus lent au chargement de la version paysage que le portrait par défaut, ce qui est un peu méchant ... Puis-je rendre cela plus efficace? Merci :) – jowie

Répondre

2

Voici la réponse ... Un peu: (de Apple Dev Forums): .... "L'application est toujours chargée comme si l'appareil est portrait, et si l'appareil est vraiment le paysage de l'application est dit que le périphérique a pivoté, afin que les nibs et le code aient uniquement besoin de créer leur interface utilisateur dans une orientation, sinon il peut être nécessaire d'avoir deux dispositions d'interface utilisateur pour chaque plume. .... ce n'est pas la réponse que j'aurais aimé, mais c'est comme ça que fonctionne iOS!

0

Qu'est-ce que le rapport de délégué de l'application dans applicationDidFinishLaunching? Parce que s'il signale la valeur correcte, vous pouvez toujours accéder au délégué pour vérifier l'orientation.

+0

Malheureusement, l'applicationDidFinishLaunching indique également Portrait au début, même si elle commence en mode paysage. – jowie