2016-06-27 2 views
0

Je veux forcer le mode portrait dans 2 viewController et 1 viewController avec mode paysage, j'ai essayé technique plus ancienne, mais ceux qui ne travaillent pas dans ios9orientation force dans ios9

Répondre

0

Il est plus que probable que vous avez certaines orientations autorisées définies dans votre info.plist. Vous devriez vérifier là et enlever toutes les entrées, car je crois que celles-ci remplaceront toutes les autres valeurs dans le projet.

Vous devriez alors être en mesure de définir l'orientation de chaque VC avec quelque chose comme:

-(NSUInteger)supportedInterfaceOrientations{ 
return UIInterfaceOrientationMaskLandscapeRight; 
} 

-(BOOL)shouldAutorotate { 
return NO; 
} 

Je pense que la clé est que vous devez Supported interface orientations.

+0

essayé .. ne fonctionne pas – iosDev

0

Vous pouvez définir l'orientation du viewcontroller de Xib/Storyboard que chaque viewcontroller la propriété « orientation »

et mettre en œuvre la méthode donnée ci-dessous

-(BOOL)shouldAutorotate 
{ 
    return NO; 
} 
+0

:(Cela ne fonctionnera pas s'ils ont pris en charge l'interface 'substituée orientations' dans leur' inf o.plist' – Greg

+0

J'ai retiré la clé d'orientation de l'interface prise en charge à partir de plist. Alors aussi ça ne marche pas, Cette méthode n'est pas appelée. – iosDev

0

Vous pouvez définir l'orientation comme ci-dessous dans votre viewDidAppear méthode

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait]; 
[[UIDevice currentDevice] setValue:value forKey:@"orientation"]; 
+0

Ceci fonctionne si mon viewcontroller est le viewcontroller initial, mais dans quel viewcontroller je veux verrouiller l'orientation n'est pas le viewcontroller initial – iosDev

+0

J'ai vérifié dans l'autre viewcontroller et cela fonctionne bien – Rajesh