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, чтобы увидеть, воспроизводилось ли видео, если это так, он завершает контроллер.