Зарегистрируйтесь, чтобы прослушать уведомление об изменении ориентации.
UIDevice *device = [UIDevice currentDevice];
//Tell it to start monitoring the accelerometer for orientation
[device beginGeneratingDeviceOrientationNotifications];
//Get the notification centre for the app
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification
object:device];
Реализуйте метод orientationChanged:
, который будет вызываться, когда устройство меняет ориентацию. Вы можете поставить код для проверки типа ориентации и вызвать свой метод.
- (void)orientationChanged:(NSNotification *)note
{
NSLog(@"Orientation has changed: %d", [[note object] orientation]);
}
Удалить уведомление в dealloc
.
[[NSNotificationCenter defaultCenter] removeObserver:self];
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
Проверьте сообщение в блоге
Реагирование на ориентацию iPhone