2010-11-10 4 views
1

question iPad:iPad - en ignorant l'orientation sur xib vue des charges

Nous avons vues que nous sommes de .xibs d'initialisation, chaque .xib contenant à la fois paysage et mises en page de portrait.

La première vue que nous chargeons respecte l'orientation du périphérique, mais les vues suivantes semblent avoir une certaine confusion quant à l'orientation à utiliser. Ou, plutôt, ils semblent ignorer complètement l'orientation et aller avec n'importe quelle orientation le fichier .xib a été enregistré avec. (Par exemple, nous avons sauvegardé un fichier .xib en mode paysage, et même si l'appareil était en position portrait, il chargeait la vue depuis le fichier .xib avec une disposition en mode paysage.)

Voici comment nous appelons ces vues :

Settings *settingsTEMP = [[Settings alloc] init]; 
self.settings = settingsTEMP; 
[self.view insertSubview:settings.view atIndex:0]; 
[settingsTEMP release]; 

la première des appels (celui qui respecte l'orientation du dispositif) est dans le viewDidLoad. La seconde, qui utilise une vue différente (celle qui ne respecte pas l'orientation de l'appareil) est dans une méthode appelée après avoir appuyé sur un bouton, mais utilise la même syntaxe.

Si nous mettons les deux dans viewDidLoad, ils respectent l'orientation.

Nous avons essayé de rechercher des personnes ayant des problèmes similaires mais qui ont échoué jusqu'à présent. Merci d'avance pour toute aide que vous pouvez fournir.

Répondre

0

J'utilise le

  
UIInterfaceOrientation toInterfaceOrientation = self.interfaceOrientation; 
if ((toInterfaceOrientation == UIDeviceOrientationLandscapeLeft) || 
      (toInterfaceOrientation == UIDeviceOrientationLandscapeRight)) 
    { 
     NSLog(@"vSettings UIDeviceOrientationLandscape"); 
     CGRect contentRect = CGRectMake(0,0,1024,768); 
     vSettings.bounds = contentRect; 
     CGRect myFrame = vSettings.frame; 
     myFrame.origin.x = 0.0; 
     myFrame.origin.y = 0.0; 
     vSettings.frame = myFrame; 
     UIImage *image; 
      image = [UIImage imageNamed: @"Default-Landscape.png"]; 
     [backGroundSettings setImage:image]; 
     } 

suivante, je déteste avoir à faire cela comme il semble un fudge droit, mais ça marche pour moi. Appelé juste après avoir créé la vue.

+0

Merci! Je vais donner un coup de feu. –

Questions connexes