2012-10-12 3 views
0

J'ai un UINavigationController dans UITabbarcontroller. Je veux faire pivoter seulement une vue cotnroller dans UINavigationController.Orientation du périphérique dans iOS 6.0 UINavigationController

Voici l'extrait de code que j'utilise.

-(NSUInteger)supportedInterfaceOrientations 
{ 
if (CURRENTDEVICE == IPHONE) 
    return [self.navigationController supportedInterfaceOrientations] | UIInterfaceOrientationMaskAllButUpsideDown; 
else 
    return UIInterfaceOrientationMaskAll; 
} 

-(BOOL)shouldAutorotate { 
return YES; 
} 

J'ai une catégorie sur UINavigationController ainsi:

#import "UINavigationController+autorotate.h" 

@implementation UINavigationController (autorotate) 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskAllButUpsideDown; 
} 

@end 

Je ne suis pas sûr de savoir comment le mettre en œuvre.

Répondre

0

vous pouvez le coder en dur avec cgrect. Voici un lien vers une autre question qui pourrait vous aider. il y a un bon exemple de codage dur de deux vues différentes pour la rotation, mais je ne le recommande pas personnellement. de toute façon je pensais que cela pourrait vous indiquer la bonne direction.

https://stackoverflow.com/questions/12867792/ios-rotation-causing-views-to-displace-shift-forcing-me-to-use-non-sensical-har

il y a un ensemble de codes dans cette question qui pourrait vous aider à démarrer. vous avez également une option dans tribord (si vous utilisez le storyboard) pour définir des rotations dans IB, ce qui est beaucoup plus facile.

espérons que cette aide

adrian

0

Dans votre catégorie dans la mise en œuvre supportedInterfaceOrientations, vous pouvez vérifier la topViewController. Vous pouvez utiliser la méthode kindOfClass: pour déterminer quelle classe elle est ... Puis retourner une orientation différente de la valeur par défaut de votre navigation.

Vous pouvez également sous-classer UINavigationController, et de le faire vérifier de la même manière. Sous-classer le contrôleur de navigation n'est pas recommandé jusqu'à ce que, iOS 6, la documentation indique encore cela, mais les ingénieurs d'Apple m'ont dit qu'avec la nouvelle logique de rotation, vous pouvez sous-classer le UINavigationController.

Questions connexes