Il semble que peu importe l'orientation que je prends en charge sur mes vues dans mon application, lorsque j'affiche une vue avec presentModalViewController, l'application se place en mode portrait. Comment puis-je prendre en charge différentes orientations avec un contrôleur de vue modale?Prise en charge de la rotation automatique pour l'affichage via presentModalViewController?
Répondre
Le contrôleur que vous présentez à l'aide presentModalViewController: animation: devrait soutenir toute orientation, typiquement en utilisant cette méthode:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
Avec cette méthode, lorsque vous présentez votre contrôleur en orientation paysage, il apparaît correctement dans le paysage orientation, aussi.
J'ai eu le même problème. J'ai mis TRUE AutorotateInterfaceOrientation mais au début mon modalview était toujours présenté Portrait même si c'était Landscape. Seulement si j'ai changé l'orientation de l'appareil (dans l'émulateur), son comportement est devenu correct. Mais au début, non! Je ne sais pas pourquoi, mais tout dépend de l'endroit où vous présentez la vue. Si vous présentez, par exemple, la méthode viewDidLoad, un problème survient. Pour résoudre le problème, j'appelle presentModalView à partir d'une méthode appelée viewDidLoad (apparemment, cela semble la même chose). Alors, je l'ai fait quelque chose comme:
- (void) viewDidLoad
{
[super viewDidLoad];
// add this line
[self performSelector:@selector(presentModal) withObject:nil afterDelay:0];
}
-(void) presentModal{
// here present your view
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
Cela fonctionne pour moi
Je viens de résoudre ce problème pour moi-même en ajoutant du code dans viewDidAppear. Je pense que la raison pour laquelle il ne s'est pas montré dans l'orientation correcte pour moi est parce que j'avais le code modal show dans viewDidLoad et à ce moment là, je pense que la vue venait de charger mais l'orientation n'était pas encore définie. Donc, l'ajouter dans viewDidAppear a fonctionné pour moi. Vous aurez probablement aussi de la chance dans viewWillAppear (car à ce moment-là, il doit savoir quelle est l'orientation, les limites, les tailles, etc.).
- 1. La prise en charge pour JspWriter
- 2. WCF et ASP.NET: Prise en charge de la prise en charge duplex utilisant AJAX
- 3. Prise en charge de Spring.Net pour Linq2SQL
- 4. Prise en charge de Ruby pour SVG
- 5. Prise en charge de la géométrie PostGIS
- 6. Prise en charge de la bibliothèque Python
- 7. Prise en charge de DEVPATH
- 8. Prise en charge de la pagination pour le répéteur
- 9. VM pour Scheme avec prise en charge de la parallélisation
- 10. Prise en charge de la langue arabe pour une application
- 11. Prise en charge multisite pour ActionMailer
- 12. Prise en charge JAVA pour Web sémantique
- 13. Prise en charge de Ruby xAuth
- 14. SimpleServiceLocator: Pourquoi l'injection automatique de constructeur n'est-elle pas prise en charge pour les singletons?
- 15. grep: opération non prise en charge sur la prise
- 16. Prise en charge de Rijndael en Java
- 17. Prise en charge du marquage
- 18. Prise en charge de ASP.Net MVC pour les ressources imbriquées?
- 19. Prise en charge d'IMAP IDLE en PHP
- 20. Le widget de l'écran d'accueil Android prend-il en charge la rotation automatique?
- 21. Le système rencontre un problème pour la prise en charge
- 22. Prise en charge JavaFX pour la capture audio d'un microphone
- 23. API pour la prise en charge du format .epub
- 24. Prise en charge de la session file_get_contents() en PHP
- 25. Prise en charge de la sérialisation binaire Silverlight 3.0?
- 26. is_multisite(); Prise en charge de Wordpress 3.0
- 27. orientation rotation automatique
- 28. Rotation automatique d'un graphique
- 29. Prise en charge de TDE PostgreSQL
- 30. Prise en charge de l'installation MVC ~ Forever