2010-11-10 6 views
2

Voici mon problème: Mon application dispose d'une barre d'outils dans laquelle vous pouvez passer d'une vue à l'autre. Le principal ou au moins celui sur le lancement est en mode paysage, puis si vous allez à une autre vue est en portrait. Le problème vient quand vous essayez de revenir au premier (paysage), la vue apparaît en portrait, donc toute vue est erronée affichée. (Est-il plus ou moins clair? Désolé si cela semble désordonné). Une partie du code que j'ai ici:Changer de vue avec une orientation différente

V1Controller:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 
} 

V2Controller:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

-(IBAction)goToV1 { 
V1Controller *v1 = [[V1Controller alloc] init]; 
[self.view.superview addSubview:v1.view]; 
} 

font peut-être quelque chose avec l'objet v1 avant d'ajouter la vue? Je ne sais pas, besoin de ton aide.

Problème résolu Dans la transition de vue, il me manquait une phrase, supprimer la vue actuelle de la vue supérieure. Aussi ce que @Brad disait. Je vous remercie.

-(IBAction)goToV1 { 
    V1Controller *v1 = [[V1Controller alloc] init]; 
    [self.view.superview addSubview:v1.view]; 
    [self.view removeFromSuperview]; 
    } 

Répondre

4

Quand vous dites:

return (interfaceOrientation == UIInterfaceOrientationPortrait); 

Votre allouent à tourner que pour le portrait.

Si vous souhaitez faire pivoter le portrait et de retourner au paysage, retournez simplement "OUI".

La même logique vaut quand vous dites

return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 

Vous disent effectivement: « Laissez tourner dans un sens - mais jamais l'autre sens »

+0

J'ai deux vues, comme vous dit, revenant OUI. Dans l'interface constructeur V1 est en paysage et V2 en portrait. Toujours sur info.plist, l'orientation initiale est définie sur UIInterfaceOrientationLandscapeLeft. Ne fonctionne toujours pas, en allant de V2 -> V1. – framara

Questions connexes