2010-05-09 3 views
0

J'utilise une classe ABPersonViewController et ABNewPersonViewController par le contrôleur pushview.Comment arrêter la rotation de ABPersonViewController & ABNewPersonViewController en mode paysage dans l'iphone

ABPersonViewController *pvc = [[ABPersonViewController alloc] init]; 
[pvc setPersonViewDelegate:self]; 
[[self navigationController] pushViewController:pvc animated:YES]; 

Dans ABPersonViewController et ABNewPersonViewController page, il affiche en mode portrait. Mais quand je fais tourner mon iPhone, il tourne parfaitement en mode paysage. Mais je veux arrêter cette rotation. Si je fais pivoter mon iPhone en mode paysage, la vue devrait être en mode portrait.

Répondre

1

La solution à votre problème est assez simple: il suffit de la sous-classe UINavigationController comme ceci:

@interface UINonRotatingNavigationController : UINavigationController { 
} 
@end 

dans votre fichier .h, et dans votre type de fichier .m:

@implementation UINonRotatingNavigationController { 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

@end 

utiliser comme votre contrôleur de navigation principal pour le sélecteur de personne - ceci devrait l'empêcher de tourner.

Hope this utile, Paul

+0

J'ai essayé celui-ci avant que je poste cette question. Mais ne pas résoudre le problème. Une autre chose que .. Si vous implémentez de cette façon, vous ne pouvez pas obtenir l'option d'édition dans la barre de navigation Merci pour la réponse – user336599

+0

Salut Paul, Si vous avez fait cela, veuillez m'envoyer l'exemple de code. Sinon, ce que vous êtes commenter pls implémenter et tester. ce que vous avez dit c'est vrai ou pas? Et aussi tester l'option d'édition est à venir ou pas. J'attends vos commentaires ............... – user336599

+0

Hey Andy, j'ai posté une solution mise à jour, Cheers – Pawel

Questions connexes