PageViewController с MPMovieViewController

Я разрабатываю приложение iOS для iPad и использую шаблон PageView. Я добавил несколько кнопок, которые воспроизводят некоторые видеофайлы. Пока все работает, но проблема в том, что сенсорные жесты вызываются для обоих представлений. Моя архитектура просмотра выглядит так

Я создаю MPMovieViewcontroller, устанавливаю полноэкранный режим и добавляю представление к моему просмотру страницы:

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerFinished:) name:MPMoviePlayerDidExitFullscreenNotification object:nil];
    mediaView = [[MPMoviePlayerViewController alloc] initWithContentURL:mediaURL];
    mediaView.moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
    mediaView.moviePlayer.fullscreen = YES;
    mediaView.moviePlayer.view.exclusiveTouch = YES;
    [mediaView shouldAutorotateToInterfaceOrientation:YES];
    [mediaView setWantsFullScreenLayout:YES];
    [mediaView.moviePlayer prepareToPlay];
    [mediaView.moviePlayer play];
    [self.view addSubview:mediaView.view];

проблема в том, что если я попытаюсь управлять ползунком громкости, этот жест перевернет страницы супервизора моего MPMovieViewController. Как я могу этого избежать?


person nurbs999    schedule 28.05.2012    source источник


Ответы (1)


Я столкнулся с той же проблемой, и в итоге я удалил жесты UIPageViewController из основного представления, а затем прочитал их, когда закончил. В моем случае я показываю панель инструментов на экране, когда кто-то один раз нажимает на контроллер просмотра страницы, а затем она исчезает, возвращаясь к контроллеру просмотра страницы. Чтобы разрешить нажатия на панель инструментов, я сделал следующее:

// Remove the page controller gestures from the view
for (UIGestureRecognizer *gesture in self.gestureRecognizers) {
    [self.view removeGestureRecognizer:gesture];
}

Где self — это мой расширенный UIPageViewController, и я делаю это в методе, который показывает что-то на экране. В вашем случае это будет немного по-другому, но на самом деле это должно сработать для вас!

person Aaron Douglas    schedule 07.08.2012