Ecco un passo per raggiungere questo obiettivo:
+ (KIFTestStep*) stepToInterfaceOrientation: (UIInterfaceOrientation) toInterfaceOrientation {
NSString* orientation = UIInterfaceOrientationIsLandscape(toInterfaceOrientation) ? @"Landscape" : @"Portrait";
return [KIFTestStep stepWithDescription: [NSString stringWithFormat: @"Rotate to orientation %@", orientation]
executionBlock: ^KIFTestStepResult(KIFTestStep *step, NSError *__autoreleasing *error) {
if([UIApplication sharedApplication].statusBarOrientation != toInterfaceOrientation) {
UIDevice* device = [UIDevice currentDevice];
SEL message = NSSelectorFromString(@"setOrientation:");
if([device respondsToSelector: message]) {
NSMethodSignature* signature = [UIDevice instanceMethodSignatureForSelector: message];
NSInvocation* invocation = [NSInvocation invocationWithMethodSignature: signature];
[invocation setTarget: device];
[invocation setSelector: message];
[invocation setArgument: &toInterfaceOrientation atIndex: 2];
[invocation invoke];
}
}
return KIFTestStepResultSuccess;
}];
}
Nota: tenere il dispositivo piatto su un tavolo o gli aggiornamenti accelerometro ruoterà la vista posteriore.
fonte
2012-08-14 08:25:10
Questo non sembra funzionare nel simulatore. Non ho un dispositivo quindi non l'ho provato ma i test KIF gireranno su simulatori attraverso VaxSim, quindi deve essere eseguito su un simulatore. Puoi confermare che questo funziona/non funziona sul simulatore? Sto usando il simulatore iOS 6.1. – applefreak
Il mio male! Funziona solo se l'app supporta l'orientamento in questione! – applefreak