En mi programa, estoy moviendo cosas en función de la rotación, pero no estoy rotando toda la vista. Estoy usando:cómo detecto la orientación del iPhone antes de girar
static UIDeviceOrientation previousOrientation = UIDeviceOrientationPortrait;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[window addSubview:viewController.view];
[window makeKeyAndVisible];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didRotate:)
name:@"UIDeviceOrientationDidChangeNotification" object:nil];
}
- (void) didRotate:(NSNotification *)notification{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
[self doRotationStuff:orientation: previousOrientation];
previousOrientation = orientation;
}
Esto funciona siempre que, cuando se puso en marcha el programa, la orientación del dispositivo es el retrato, pero no si la orientación inicial es horizontal o al revés, porque [auto doRotationStuff] hace cambios con respecto a la diferencia de la orientación anterior.
¿Hay alguna forma de detectar la orientación durante el lanzamiento o justo antes de rotar el dispositivo?
Durante applicationDidFinishLaunching, [UIDevice currentDevice] .orientation es UIDeviceOrientationUnknown –
no tengo ni idea de cómo me gustaría utilizar performSelector: afterDelay. ¿Puedes dar un ejemplo de código? –
Intenté lo que dijiste pero incluso [self performSelector: @selector (getOriented) withObject: nil afterDelay: 10.0f]; no tuvo ningún efecto –