Неожиданное поведение модального представления при отображении видео YouTube в UIWebView - PullRequest
2 голосов
/ 12 февраля 2012

У меня есть приложение на основе представления (без раскадровок) с кнопкой, которая представляет модальное представление с веб-представлением в нем. Веб-просмотр загружает видео с YouTube, пользователь нажимает на него и смотрит видео в полноэкранном режиме.

Когда видео заканчивается (или пользователь нажимает «Готово»), видеопроигрыватель закрывается, но по какой-то причине я вижу основной вид вместо контроллера модального вида (и не могу снова вызвать модальный вид с помощью кнопка, хотя вызывается IBAction) ...

Текущий код модального вида (в контроллере основного вида):

SomeViewController *controller = [[[SomeViewController alloc] initWithNibName:@"SomeViewController_iPhone" bundle:nil] autorelease];
                controller.delegate = self;
                controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
                [self presentModalViewController:controller animated:YES];

Затем в SomeViewController у меня есть UIWebView, который загружает видео YouTube:

- (void)embedYouTube:(NSString *)urlString frame:(CGRect)frame {
    NSString *embedHTML = @"\
    <html><head>\
    <style type=\"text/css\">\
    body {\
    background-color: transparent;\
    color: white;\
    }\
    </style>\
    </head><body style=\"margin:0\">\
    <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
    width=\"%0.0f\" height=\"%0.0f\"></embed>\
    </body></html>";
    NSString *html = [NSString stringWithFormat:embedHTML, urlString, frame.size.width, frame.size.height];
    [self.webView loadHTMLString:html baseURL:nil];
}

Видео воспроизводится просто отлично, но когда оно закончено, оно закрывается, и вместо модального представления (SomeViewController) отображается основной вид. Никакой ошибки не дается, хотя.

Насколько я понимаю, видеоплеер также является модальным видом, поэтому иерархия выглядит примерно так:

-- Main View
---- Modal View (SomeViewController with WebView)
-------- Video Modal View (invoked by the WebView)

Так что я не понимаю, почему контроллер основного вида отображается после завершения воспроизведения видео, и почему он не позволяет мне снова вызывать контроллер модального вида ...

Спасибо за любую помощь!

...