7
votes

Top-Home Bouton Portrait Orientation dans le simulateur IOS6 ne fonctionne pas

I Configurez Xcode 4.5 et iOS6 Simulator il y a quelques minutes. Mon application prend en charge toutes les orientations 4 de l'iPhone, Bouton de fond de portrait et supérieur, paysage à gauche et à droite.

Eh bien, je mets que sur le .plist tel qu'il est requis par IOS6 et aussi l'ancienne méthode de la ... La méthode est toujours là-bas qui retourne oui.

Mais dans le simulateur, l'application est non tournant sur le bouton de la maison supérieure portrait.

pourquoi? Est-ce à but? Cela fonctionnerait-il correct sur le périphérique?

Merci.


0 commentaires

4 Réponses :


1
votes

Je pense que vos fichiers de vue vont retourner la valeur par défaut qui est à l'envers. Vous devez implémenter:

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}


4 commentaires

Ne marche pas. Aussi défini toutes les orientations d'interface dans le plat, renvoyées OUI de ViewController's - (BOOL) DoTutoroTutotate et ... Maskall de l'Appdelegate's - (Nsuinteger) Application: (UIAPPLication *) Application PrincipaleInterfaceOrientationsForWindow: (UiWindow *) Fenêtre.


Fonctionne comme prévu sur l'iPad Simulator. Peut-être un bug dans les versions iPhone?


Je vais devoir lire la nouvelle documentation plus. Mes attentes pour le moment sont que la réglage dans le fichier .plist et renvoyer MASKALL dans les contrôleurs d'affichage devraient le faire. Je me souviens également de mentionner de retour de l'Appdelegate. Cela peut être la pièce manquante.


Pour moi, c'était quatre morceaux: 1) Dans mon mode de vueController - (Nsuinteger) PrincipauxinterfaceOrientsOrientations , 2) Les entrées correctes en plist, 3) - (bool) devraient - (code> dans mon mode de vue et Le dernier bit manquant 4) la catégorie UinavigationController (voir ma propre réponse). J'ai déjà eu 1) -3) dans et il a fonctionné correctement sur iPad SIM, 4) le rendit en fin de compte sur iPhone.



2
votes

Le comportement par défaut pour iOS6 sur iPhone n'est pas une orientation à l'envers.

de UIViewController Class Référence: Les valeurs par défaut des orientations d'interface prises en charge d'un contrôleur d'affichage sont définies sur UiTorfaceOrientationMaskall pour l'iPad Idiom et UiTinterfaceOrientationMaskallButupsidown pour l'iPhone Idiom.

Vous pouvez voir ce comportement également dans Safari ou Cartes.

J'ai essayé de remplacer cela avec UiTinterfaceOrientationMaskall, comme Dean dit, mais à aucun effet. J'ai décidé de ne plus utiliser le mode à l'envers, car il s'agit d'une sorte de guide d'interface utilisateur que j'aime suivre et de ne pas confondre les utilisateurs.


1 commentaires

Je ne suis pas pressé et je veux vraiment un soutien à l'envers à cause du placement du microphone sur iPhone 3GS-4S.



18
votes

OK, J'ai trouvé la réponse maintenant moi-même.

Il ne suffit pas d'avoir p> xxx pré>

dans votre mode de vue si elle est poussée dans un UINAVIGATIONVIEWCONTROLLER code>. Le UinavigationviewController code> doit également avoir ces méthodes. De préférence, vous le faites en ayant une petite catégorie sur uinavigationviewcontroller code>. P>

ceci est mon uinavigationcontroller-rotation.h code>: p>

#import "UINavigationController-Rotation.h"

@implementation UINavigationController (Rotation)

#pragma From UINavigationController

- (BOOL)shouldAutorotate {

    BOOL result = self.topViewController.shouldAutorotate;

    return result;
}

- (NSUInteger)supportedInterfaceOrientations {

    NSUInteger result = self.topViewController.supportedInterfaceOrientations;

    return result;
}

#pragma -

@end


0 commentaires

0
votes

Si quelqu'un d'autre qui a toujours des problèmes, même après la réponse de ChristOH:

Je viens de remarquer que les projets Plist ont des entrées séparées pour iPad et iPhone (orientations d'interface prises en charge (iPad) et orientations d'interface prise en charge (iPhone)).

espère que cela aide.


0 commentaires