Ho un'app per iPhone che sto aggiornando a iOS 6 che sta avendo problemi di rotazione. Ho un UITabBarController
con 16 UINavigationCotrollers
. La maggior parte delle visualizzazioni secondarie può funzionare in verticale o orizzontale ma alcune sono solo verticali. Con iOS 6 le cose ruotano quando non dovrebbero.iOS 6 UITabBarController orientamento supportato con controller UINavigation corrente
ho provato sottoclasse il tabBarController di restituire il supportedInterfaceOrienations
della corrente del navigationController selezionato viewController:
- (NSUInteger)supportedInterfaceOrientations{
UINavigationController *navController = (UINavigationController *)self.selectedViewController;
return [navController.visibleViewController supportedInterfaceOrientations];
}
Questo mi ha fatto più vicino. Il controller della vista non ruoterà fuori posizione quando è visibile, ma se sono in orizzontale e cambio le schede la nuova scheda sarà in orizzontale anche se non è supportata.
Idealmente l'app si troverà solo nell'orientamento supportato dell'attuale controller di visualizzazione visibile. Qualche idea?
Questo è quasi funzionante per me. Il problema è che se sono già in modalità orizzontale quando passo a un tab il ritratto è ancora visibile in orizzontale. Il ritratto rotante lo fissa e non ritorna in posizione orizzontale, ma ho ancora bisogno che sia in verticale quando viene caricato per la prima volta. – Ryan
Non sono sicuro di cosa sia esattamente necessario ruotare, ma scommetto che lo farai - (vuoto) viewWillLayoutSubviews. Potrei non avere esattamente ragione su quel nome di metodo dalla memoria. I miei punti di vista, dove ho usato questo codice, stanno cambiando completamente quando ruotato e uso questo metodo per riconfigurarli in modalità verticale. Puoi anche provare qualcosa in -viewWillDisappear. Forse [self.view setNeedsDisplay]. Al momento non sono in Xcode quindi queste sono solo idee che vorrei esplorare nel tuo caso. –
Bello! Funziona come un fascino! – Dennso