Voglio sostenere paesaggio & orientamento verticale sul mio iPad app che utilizza uno storyboard senza essere coinvolti nei meandri di Auto Layout
su iOS6+
e Auto Resizing
su iOS 5
e in precedenza (dal momento che l'applicazione supporta sia per iOS 5 & 6 in modo che nessun AutoLayout
è permesso qui), quello che ho pensato come un punto di inizio per la soluzione era la seguente:il metodo migliore per supportare più orientamenti su iPad con storyboard (senza layout automatico o il ridimensionamento automatico)
creando due storyboard distinte: MainStoryboard-Portrait
& MainStoryboard-Landscape
, quando la controller di visualizzazione corrente (chiamiamolo Fir stViewController) è in verticale e l'utente fa ruotare il dispositivo in orizzontale, I instantiate
un nuovo FirstViewController
da MainStoryboard-Landscape
storyboard e viceversa quando l'utente ruota di nuovo in verticale. Ho fatto qualcosa di simile in willRotateToInterfaceOrientation
metodo FirstViewController.m
:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard-Landscape" bundle:[NSBundle mainBundle]];
FirstViewController *VC = [storyboard instantiateViewControllerWithIdentifier:@"VC1"];
self.view = VC.view;
ma l'incidente seguente avviene su iOS6 +: A view can only be associated with at most one view controller at a time!
, provato anche su iOS5 non ci sarà alcun incidente, ma la rotazione non funziona correttamente: finestra delimita ruota ma la vista stessa rimane così com'è.
Come ottenere il funzionamento su entrambi iOS 5 & 6? o se c'è un altro metodo migliore, per favore forniscici un campione di codice funzionante e ti assegnerò una taglia di 50 punti.
layout automatico è molto complicato quando si inizia a lavorare con un complesso progetto di interfaccia utente – JAHelia
Può essere, ma il progettista di interfaccia utente XCode nasconde un sacco di quella complessità. – Andrew
Questa non è una buona risposta, in quanto ha detto che vuole essere in grado di supportare pre iOS 6. Supportando solo iOS 6, si uccide in modo efficace gran parte della base utenti. L'adozione di iOS 6 è buona, ma non è così buona. – jmstone617