Avant iOS 8, nous utilisions le code ci-dessous en conjonction avec les méthodes de délégation supportedInterfaceOrientations et shouldAutoRotate pour forcer l'orientation de l'application à une orientation particulière. J'ai utilisé l'extrait de code ci-dessous pour faire pivoter l'application par programmation vers l'orientation souhaitée. Tout d'abord, je change l'orientation de la barre d'état. Ensuite, il suffit de présenter et de supprimer immédiatement une vue modale pour faire pivoter la vue vers l'orientation souhaitée.
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES];
UIViewController *c = [[UIViewController alloc]init];
[self presentViewController:vc animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];
Mais cela échoue dans iOS 8. De plus, j'ai vu des réponses dans le débordement de pile où les gens ont suggéré que nous devrions toujours éviter cette approche à partir d'iOS 8.
Pour être plus précis, mon application est un type d'application universel. Il y a trois contrôleurs au total.
Contrôleur First View - Il doit prendre en charge toutes les orientations de l'iPad et uniquement le portrait (bouton d'accueil vers le bas) sur l'iPhone.
Contrôleur Second View - Il ne doit prendre en charge que le paysage dans toutes les conditions
Contrôleur Third View - Il ne doit prendre en charge que le paysage dans toutes les conditions
Nous utilisons le contrôleur de navigation pour la navigation dans les pages. Depuis le premier contrôleur de vue, sur une action de clic de bouton, nous poussons le second sur la pile. Ainsi, lorsque le deuxième contrôleur de vue arrive, quelle que soit l'orientation de l'appareil, l'application doit se verrouiller uniquement en mode paysage.
Vous trouverez ci-dessous mes méthodes shouldAutorotate
et supportedInterfaceOrientations
dans les deuxième et troisième contrôleurs de vue.
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscapeRight;
}
-(BOOL)shouldAutorotate {
return NO;
}
Existe-t-il une solution pour cela ou une meilleure façon de verrouiller un contrôleur de vue dans une orientation particulière pour iOS 8. Veuillez aider !!