Aquí es un paso para lograr esto:
+ (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: Mantenga su dispositivo plano sobre una mesa o las actualizaciones del acelerómetro rotará la vista atrás.
Esto no parece funcionar en el simulador. No tengo un dispositivo así que no lo he probado, pero las pruebas KIF se ejecutarán en simuladores a través de VaxSim, por lo que debe ejecutarse en el simulador. ¿Puedes confirmar que esto funciona/no se ejecuta en el simulador? Estoy usando el simulador iOS 6.1. – applefreak
¡Malo! ¡Funciona solo si la aplicación es compatible con la orientación en cuestión! – applefreak