我正在尝试创建一个新的视图控制器,用于使用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];
但这似乎也无济于事。
发布于 2017-02-25 04:43:48
最后,我决定避免等待委托方法,而是在视图控制器的viewWillAppear方法中实现finishVideoView。它现在似乎起作用了--每当我的视图控制器再次出现时,它就会检查BOOL,看看视频是否已经播放,如果播放了,它就会结束控制器。
https://stackoverflow.com/questions/42445526
复制相似问题