2012-05-31 36 views
5

Sto appena iniziando con Storyboard e iOS 5.1. L'applicazione che sto costruendo utilizza come controller di navigazione un controller di navigazione ed è progettato per essere utilizzato in orientamento orizzontale (è un'applicazione aziendale interna).UIView in iOS 5 utilizzando Storyboard non ruota il contenuto sulla rotazione del dispositivo iPad

Ho creato una vista singola, che ha funzionato correttamente: il contenuto ruota correttamente per rimanere "con il lato destro verso l'alto" quando il simulatore cambia orientamento.

Ho quindi aggiunto una nuova vista, e quella non è stata ruotata a; il contenuto rimane orientato in verticale (e quindi è di lato) quando il dispositivo ruota.

Ho controllato le impostazioni per i due UIViewControllers e UIViews e non vedo alcuna differenza tra loro. Qualche idea su dove dovrei guardare?

risposta

9

Prima di tutto ogni UIViewController nello storyboard deve avere una classe supportata. Crea una nuova classe che eredita da UIViewController e poi, nello storyboard, fai clic su uiviewcontroller e, in fondo a quel controller, fai clic sulla casella a destra e nella finestra di ispezione classe, sostituisci UIViewController con il nome della nuova classe che hai creato .

Quindi, fare in modo che in ogni vista classe controller che si creano, si implementa il metodo

-(BOOL)shouldAutoRotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return YES; 
} 

Basta fare questo metodo deleate per tornare SI in ogni controller di vista per assicurarsi che tutti i loro punti di vista ruotano in qualsiasi orientamento L'hai fatto?

+1

Non posso credere di averlo dimenticato; troppo abbagliato dal calore dello storyboard ... Grazie! – Christophe

+0

Tecnicamente, non è necessario avere una sottoclasse di controller di visualizzazione per sempre, ma di solito è il tuo caso. –

+2

Si noti che se si utilizza Xcode 4.5 ma si esegue il deployment su iOS 5.x questo metodo non verrà più generato automaticamente nelle sottoclassi UIViewController (poiché è stato reso obsoleto in iOS 6.x), quindi sarà necessario aggiungere manualmente per far funzionare le cose sotto iOS 5.1. –

0

Anche questo mi ha infastidito. La mia app è stata ruotata nel simulatore iPad ma non su un vero iPad. Abbastanza strano Ho avuto un UITabBarController con tre schede. Tutti e tre i controller collegati alla barra delle schede avevano il metodo dovrebbeAutoRotateToInterfaceOrientation, ma solo due di essi (5 passaggi dopo la perforazione tramite il controller di navigazione) non lo facevano. Ho aggiunto il metodo anche a quelli e ora ruota.

Solo il mio 2 ¢.

Problemi correlati