iOS ViewController не исчезает после просмотра видео UnityAds

Я пытаюсь создать новый View Controller для отображения видео с вознаграждением пользователям, используя UnityAds и Vungle (в зависимости от того, что доступно).

После просмотра видео Vungle, VungleSDKDelegate позвоню vungleSDKwillCloseAdWithViewInfo который я реализовал как таковой:

- (void)vungleSDKwillCloseAdWithViewInfo:(NSDictionary *)viewInfo willPresentProductSheet:(BOOL)willPresentProductSheet {
    NSLog(@"vungleSDKwillCloseAdWithViewInfo");

    [self finishVideoView];
}

А также finishVideoView как:

- (void) finishVideoView {
    NSLog(@"finishVideoView");
    [self dismissViewControllerAnimated:YES completion:nil];
}

Это прекрасно работает, когда все готово, контроллер представления закрывается и приложение возобновляет работу. Тем не менее, когда я пытаюсь сделать этот метод в Unity's UnityAdsDelegateметод unityAdsDidFinishКонтроллер вида просто зависает и никогда не закрывается.

- (void)unityAdsDidFinish:(NSString *)placementId withFinishState:(UnityAdsFinishState)state{
    NSLog(@"unityAdsDidFinish");

    [self finishVideoView];
}

Есть идеи почему? Кажется, что unityAdsDidFinish обратный вызов происходит сразу после того, как я нажал х в верхней части готового видео.

Я подумал, что это может быть проблема времени, поэтому я также попытался сделать:[self performSelector:@selector(finishVideoView) withObject:nil afterDelay:1.0];

Но это, похоже, тоже не помогает.

1 ответ

Решение

В итоге я решил не ждать методов делегата и вместо этого реализовать finishVideoView в моем ViewController's viewWillAppear метод. Кажется, теперь это работает - всякий раз, когда мой контроллер просмотра появляется снова, он проверяет BOOL, чтобы увидеть, воспроизводилось ли видео, если это так, он завершает контроллер.

Другие вопросы по тегам