J'ai un helloController qui est un UIViewController, si je fais tourner l'appareil, je veux le changer pour charger une nouvelle plume "helloHorizontal.xib", comment puis-je faire? Je vous remercie.Comment changer une nouvelle pointe quand je fais tourner l'appareil?
6
A
Répondre
1
Vous pourriez vous quelque chose comme ça, (je ne Xcode à portée de main si ce code pourrait ne pas être tout à fait exact)
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if((interfaceOrientation == UIInterfaceOrientationLandscapeRight) || (interfaceOrientation == UIInterfaceOrientationLandscapeLeft)){
WhatYourNewViewClassISCAlled* newView = [[WhatYourNewViewClassISCAlled alloc] initWithNibName:@"NIBNAME" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:newView animated:YES];
}
1
Ceci est la bonne façon, je crois. Je l'utilise dans mes applications et il fonctionne parfaitement
- déclenche sur TOURNE, ne doit cabrer (temps d'attente jusqu'à ce que la rotation anim est sur le point de commencer)
- utilise la convention de nommage d'Apple pour les fichiers paysage/portrait (Default.png est par défaut-landscape.png si vous voulez Apple pour auto-charger une version paysage)
- rechargements la nouvelle NIB
- qui remet à zéro le self.view - cette fenêtre mettre à jour l'affichage
- puis il appelle viewDidLoad (Apple ne l'appellera PAS pour vous, si vous rechargez manuellement un NIB)
(NB stackoverflow.com exige cette phrase ici - il y a un bogue dans le code formatter)
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation))
{
[[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@-landscape", NSStringFromClass([self class])] owner:self options:nil];
[self viewDidLoad];
}
else
{
[[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@", NSStringFromClass([self class])] owner:self options:nil];
[self viewDidLoad];
}
}
Questions connexes
- 1. movieplayer doenst plus tourner quand je setControlStyleNone
- 2. Puis-je recevoir une notification quand une nouvelle journée commence?
- 3. Quand devrais-je créer une nouvelle classe Exception
- 4. Je fais une télé simulée
- 5. Comment changer le type de pointe de flèche?
- 6. Comment est-ce que je fais une image change quand la souris est dessus HTML?
- 7. Quand devrais-je changer un SerialUID?
- 8. Face à un problème quand je fais une configuration de service Windows
- 9. Je fais le chargement
- 10. Quand et comment puis-je changer l'attribut __class__ d'un objet?
- 11. Fermer infoWindow quand une nouvelle fenêtre s'ouvre?
- 12. Comment autoscroll tableview quand une nouvelle valeur est ajoutée
- 13. Javascript - Comment changer une nouvelle valeur sur le menu déroulant
- 14. Comment pouvons-nous tourner des vues comme tourner une page dans une application iphone?
- 15. Changer de vue comme page tourner iphone/ipad cocoa
- 16. Mon DNS fonctionne quand je fais un "nom d'hôte de dig @mynameserver" mais pas quand je fais un "nom d'hôte de fouille"
- 17. Comment changer une icône QPushButton quand elle a le focus?
- 18. Je ne peux pas voir l'état en surbrillance de ma coutume quand je le pousse pour obtenir une nouvelle vue
- 19. Comment puis-je changer la position verticale du contenu après une nouvelle ligne tabulaire?
- 20. .NET - Comment puis-je changer le format Date en créant une nouvelle culture dans .NET?
- 21. Qu'est-ce que cela signifie quand une erreur js pointe vers une partie de viewstate?
- 22. Comment est-ce que je peux redimensionner un iframe modal quand une nouvelle page charge dedans?
- 23. jQuery question - comment je fais ça?
- 24. comment je groupe fais cette requête mysql
- 25. mvc avec formulaires auth comment est-ce que je fais une page exige l'authentification
- 26. Comment puis-je faire tourner cette minuterie pour toujours?
- 27. python: tourner TextWrap dans une liste
- 28. changer dynamiquement un événement onclick à une nouvelle fonction
- 29. Comment est-ce que je fais fonctionner une fonction seulement quand la souris ne survole pas un div spécifié?
- 30. Pourquoi y a-t-il une différence dans le tweening que je fais quand je tween deux objets?
Mais la vue en orientation portrait sera toujours sur la pile, non? Donc, le bouton retour pointera vers la mauvaise chose. –
Bon point, vous pouvez masquer la barre de navigation lorsque les vues sont pivotées ou que la vue a déjà été créée et l'afficher en fondu et faire disparaître l'autre vue lorsque la rotation se produit. – octermircty