Question

Voici mon problème: Mon application a une barre d'outils où vous pouvez changer entre les vues. La principale ou au moins celui sur le lancement est en mode paysage sur, alors si vous allez à tout autre point de vue est en mode portrait. Le problème vient quand vous essayez de revenir à la première (paysage), la vue apparaît en mode portrait, donc tout point de vue est un problème d'affichage. (Est-il plus ou moins clair? Désolé si semble désordre). Une partie du code que j'ai ici:

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

Peut-être faire quelque chose avec le v1 objet avant d'ajouter la vue? Je ne sais pas, besoin de votre aide.

Problème résolu Dans la transition de vue je manque une phrase, supprimer la vue actuelle de la superview. Aussi ce @Brad a dit. Merci.

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

La solution

Quand vous dites:

return (interfaceOrientation == UIInterfaceOrientationPortrait);

Votre allouent à tourner que pour le portrait.

Si vous voulez tourner à portrait puis retour pour le paysage, juste retour "OUI".

La même logique vaut quand vous dites

return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);

Vous êtes effectivement dit: « Que ce soit pivotée une façon - mais jamais l'autre sens »

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top