Есть ли такая функция, как beginIgnoringInteractionEvents в UIApplication, которая игнорирует вращение вместо касаний? Мне нужно, чтобы мое приложение НЕ вращалось только в MPMovePlayerViewController
, который я представляю.
Спасибо
[UPDATE]
Вот мой код -
MPMoviePlayerViewController *mpViewController = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:videoURL]];
[mpViewController shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeRight];
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
[self presentMoviePlayerViewControllerAnimated:mpViewController];
[mpViewController release];
Я заработал, добавив методы shouldAutorotateToInterfaceOrientation: и setStatusBarOrientation:. Работает в симуляторе. Однако, если я поворачиваю iPhone во время воспроизведения видео, строка состояния также поворачивается и остается «застрявшей» в книжной ориентации.
изображение моей проблемы на http://i28.tinypic.com/357mrub.png
[ОБНОВЛЕНИЕ 2]
Подклассифицируя MPMoviePlayerViewController (и реализуя метод shouldAutorotate), программа вращается как следует. Только видео не воспроизводится, потому что линия
[self presentMoviePlayerViewControllerAnimated:mpViewController];
не принимает мой подкласс.
"предупреждение: несовместимые типы Objective-C« struct NoRotate * », ожидаемый« struct MPMoviePlayerViewController * »при передаче аргумента 1« presentMoviePlayerViewControllerAnimated: »из отличного типа Objective-C»