2011-01-04 4 views
1

J'utilise le code suivant pour définir l'orientation de l'appareilGuide-moi sur UIDevice currentDevice

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight]; 

quand je suis arrivé, je l'avertissement et je l'ai trouvé le code ci-dessous pour corriger cet avertissement.

@interface UIDevice (MyPrivateNameThatAppleWouldNeverUseGoesHere) 
- (void) setOrientation:(UIInterfaceOrientation)orientation; 
@end 

Maintenant, ce que je voudrais savoir est ...

l'App Store accepte ce code peut être dans une application?

Merci pour toute aide !.

Répondre

6

oh mon dieu, non. L'avertissement que vous obtenez est parce que ce n'est pas une propriété readwrite; il suffit d'ajouter une catégorie qui déclare que la méthode ne vous laissera pas définir l'orientation. Non seulement l'AppStore ne l'acceptera pas, mais il se bloquera la première fois car il n'y a pas d'accesseur. (bien, il va probablement se bloquer, il peut y avoir une API non documentée ici, auquel cas vous allez juste être rejeté).

0

Au lieu de définir une orientation, la bonne façon de le faire est d'avoir votre application écouter lorsque l'utilisateur fait pivoter le téléphone, puis revenir OUI ou NON pour indiquer que l'application devrait, en fait, tourner (c.-à-d. toujours retourner NO si vous voulez que l'application reste toujours dans son état initial.) La méthode shouldAutorotateToInterfaceOrientation: est appelée automatiquement chaque fois que l'utilisateur change d'orientation.

Par exemple, dans votre contrôleur de vue, mettre en œuvre la méthode pour ne permettre au téléphone à utiliser dans le paysage droit/gauche:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    if (UIDeviceOrientationIsLandscape) { return YES }; 
    return NO; 
} 

Vous également définir l'orientation par défaut de votre application (il doesn ne commencez pas en mode portrait) en ajoutant la balise UIInterfaceOrientation au fichier info.plist de votre application avec la valeur UIInterfaceOrientationLandscapeRight. Sinon, la valeur par défaut est portrait, et l'utilisateur devra incliner le téléphone pour l'amener dans l'orientation attendue.

Questions connexes