Я полагаю, вы пытаетесь обнаружить изменение ориентации в контроллере представления, который представляет MPMoviePlayerViewController
?Этот код не будет запущен после того, как контроллер представления видеоплеера будет представлен, потому что он, а не его родитель, будет получать события поворота.
Однако вы можете подписаться на уведомления о повороте устройства и отменить проигрыватель фильмаКонтроллер просмотра всякий раз, когда вы обнаруживаете поворот к портрету:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[defaultCenter addObserver:self selector:@selector(deviceOrientationDidChange:) name: UIDeviceOrientationDidChangeNotification object:nil];
// Present MPMoviePlayerViewController here
В другом месте в том же контроллере просмотра:
- (void)deviceOrientationDidChange:(NSNotification *)notification
{
UIDevice *currentDevice = [UIDevice currentDevice];
[currentDevice endGeneratingDeviceOrientationNotifications];
if (...) // Check currentDevice.orientation to see if it's what you want
{
// Do whatever you want now that you have the orientation you want
}
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];
}