Prima iOS 8, abbiamo usato qui sotto code unitamente supportedInterfaceOrientations e shouldAutoRotate metodi delegato di forzare orientamento all'applicazione di qualsiasi orientamento particolare. Ho usato lo snippet di codice qui sotto per ruotare l'app a livello di programmazione sull'orientamento desiderato. In primo luogo, sto cambiando l'orientamento della barra di stato. Quindi, la semplice presentazione e il rifiuto immediato di una vista modale fa ruotare la vista sull'orientamento desiderato.
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES];
UIViewController *c = [[UIViewController alloc]init];
[self presentViewController:vc animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];
Ma questo non funziona in iOS 8. Inoltre, ho visto alcune risposte in overflow dello stack in cui le persone hanno suggerito che dovremmo sempre evitare questo approccio da iOS 8 in poi.
Per essere più specifici, la mia applicazione è un tipo universale di applicazione. Ci sono tre controller in totale.
Controller First View : dovrebbe supportare tutti gli orientamenti in iPad e solo il ritratto (pulsante Home in basso) in iPhone.
Controller Second View - Dovrebbe supportare solo il panorama in tutte le condizioni
Controller per la terza vista - Dovrebbe supportare solo il panorama in tutte le condizioni
Stiamo usando il controller di navigazione per la navigazione della pagina. Dal primo controller di visualizzazione, facendo clic sul pulsante, spingiamo il secondo in pila. Quindi, quando arriva il secondo controller di visualizzazione, indipendentemente dall'orientamento del dispositivo, l'app dovrebbe bloccarsi solo in orizzontale.
Di seguito sono riportati i metodi my shouldAutorotate
e supportedInterfaceOrientations
in controller di seconda e terza vista.
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscapeRight;
}
-(BOOL)shouldAutorotate {
return NO;
}
Esiste una soluzione per questo o un modo migliore di bloccare un controller di visualizzazione con un orientamento particolare per iOS 8. Per favore aiutatemi !!