Question

J'ai une application iPhone que j'ai créé comme une application iPad / iPhone universel. Je l'ai mis en place un splitviewcontroller pour la version iPad ... tout va bien.

Dans mon application iPhone, tout est en Portrait, sauf pour un 2ème contrôleur de vue de niveau (une vue sur le Web), que j'Override shouldAutorotateToInterfaceOrientation pour permettre le paysage. En rentrant dans la chaîne de vue, je vais retourner à portrait .. Excellent!

Cependant, maintenant mon application iPad de vue partagé est obligé de rester en mode portrait. Si j'Override shouldAutorotateToInterfaceOrientation dans aucun de mes vues comme RootViewController ou autres, il permet effectivement en mode paysage dans mon application iPhone que je ne peux pas le faire. Cependant, il ne résout mon problème de paysage dans l'iPad.

Y at-il un moyen de contourner cela? Je veux effectivement dire OUI à shouldAutorotateToInterfaceOrientation pour iPad, mais pas pour l'iPhone. J'ai essayé, mais cela ne fonctionne pas, il permet le paysage sur les deux appareils:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    BOOL rotate = NO;
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        rotate = YES;
    }
    return rotate;  
}

Un conseil?

Était-ce utile?

La solution

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    return YES;
} else {
    return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top