2010-10-10 19 views
10

avere il codice seguente:iPad lancio orientamento quando piatta sulla superficie

-(void)viewWillAppear:(BOOL)animated { 

    UIDeviceOrientation orientation = [[UIDevice currentDevice] UIInterface]; 

    if(orientation==UIDeviceOrientationLandscapeLeft || orientation==UIDeviceOrientationLandscapeRight) { 
     NSLog(@"Device Landscape"); 
    } else { 
     NSLog(@"Device Portrait"); 
    } 

} 

Questo funziona perfettamente per il simulatore e sul dispositivo, ma solo se l'iPad non è piatto su una superficie, per esempio se i lay l'iPad sulla mia scrivania e caricare la vista che dirà il suo ritratto e quindi non posso rilevare l'orientamento quando appare la vista.

Qualche idea del modo migliore per rilevare l'orientamento dell'interfaccia quando viene chiamato viewWillAppear?

Grazie

+0

Ebbene, che cosa volete che il vostro app per fare se l'iPad è in realtà rivolto verso l'alto? –

+0

Vuole sapere se mostrare o meno la vista in orizzontale o in verticale quando il dispositivo è appiattito. – Emil

+0

Ho una sottoview che viene visualizzata in un punto diverso a seconda che la vista sia orizzontale/verticale. Quindi ho bisogno di sapere quale orientamento l'interfaccia è quando la vista Appare. – Steve

risposta

26

si dovrebbe usare [self interfaceOrientation] al posto del orientamento del dispositivo.

0

In primo luogo, si conosce la proprietà interfaceOrientation di UIViewController? Sembra che tu stia cercando di duplicarlo. Se si vuole veramente farlo, è sufficiente sottoscrivere le notifiche di modifica dell'orientamento del dispositivo, verificare se il nuovo orientamento è un orientamento dell'interfaccia valido (è una macro per quello) e se sì, memorizzare il valore su una variabile (come lastSeenOrientation). Quindi puoi contare su quel valore ovunque tu voglia.

8

[[UIApplication sharedApplication] statusBarOrientation] funziona anche se si è in qualche parte del codice che non hanno accesso a [self interfaceOrientation]

+0

+1, funziona davvero bene, grazie! –

Problemi correlati