iOS ViewController UnityAds 视频观看后未关闭

iOS ViewController Not Dismissing After UnityAds Video View

我正在尝试创建一个新的视图控制器,用于使用 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 UnityAdsDelegate 的方法 unityAdsDidFinish 中执行此方法时,视图控制器就挂在那里,从不关闭。

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

    [self finishVideoView];
}

知道为什么吗? unityAdsDidFinish 回调似乎是在我点击完成视频顶部的 x 后立即发生的。

我认为这可能是时间问题,所以我也尝试这样做: [self performSelector:@selector(finishVideoView) withObject:nil afterDelay:1.0];

但这似乎也无济于事。

我最终决定避免等待委托方法,而是在 ViewController 的 viewWillAppear 方法中实现 finishVideoView。它现在似乎可以工作 - 每当我的视图控制器再次出现时,它会检查 BOOL 以查看是否播放了视频,如果是,它会完成控制器。