在UnityAds视频查看后,iOS ViewController不会被解雇

时间:2017-02-24 18:10:27

标签: ios objective-c unityads

我正在尝试创建一个新的视图控制器,用于使用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];

但这似乎也没有帮助。

1 个答案:

答案 0 :(得分:0)

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