В моей программе я перемещаю вещи на основе вращения, но я не вращаю весь вид. Я использую:
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;
}
Это работает до тех пор, пока при запуске программы ориентация устройства будет портретирована, но если начальная ориентация не будет ландшафтной или перевернутой, потому что [self doRotationStuff] производит изменения относительно разницы с предыдущей ориентацией.
Есть ли способ определить ориентацию либо при запуске, либо непосредственно перед вращением устройства?