У меня есть MovieViewController как ребенок UINavigationController. Я использовал MPMoviePlayerViewController для воспроизведения потокового видео, запускаемого с MovieViewController, и в этом видеоизображении он может изменить ориентацию на пейзаж или портрет. Все, что мне нужно, когда я нажимаю кнопку «Готово», MovieViewController снова переключается в портретный режим, потому что это режим поддержки только поддержки.Принудительное управление UINavigationController только в портретном режиме
Вот код
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return UIInterfaceOrientationMaskPortrait;
}
- (NSUInteger) supportedInterfaceOrientations {
return(UIInterfaceOrientationMaskPortrait);
}
- (BOOL) shouldAutorotate {
return FALSE;
}
Но когда я нажимаю на кнопку Готово это сбой, «preferredInterfaceOrientationForPresentation должен вернуть поддерживаемую ориентацию интерфейса!»
примечание: я назвал moviePlayer модально.
NSURL *movieURL = [NSURL URLWithString:@"URL"];
player =[[MyMoviePlayerViewController alloc]
initWithContentURL:movieURL];
[self presentViewController:player animated:YES completion:nil];
Итак, после того, как он вызывается, вы можете сделать кнопку, которая отклонит представление. Проблема в том, что когда я просматриваю фильм в альбомном режиме и нажимаю кнопку «Готово», он разбился, потому что у меня есть только 1 поддерживаемый интерфейс (портрет).
считают это решение, которое создает категорию по навигации контроллера, который устанавливает его для разрешенных/dissalowed ориентаций http://stackoverflow.com/questions/26205269/force-view-controller-to-portrait-only – zonabi