最近,我在代码中实现了奖励视频功能,并且效果很好。简而言之,当用户从表格视图中选择级别并观看奖励的视频时,它将解锁级别。但是,当用户关闭广告视图时,表格视图保持不变,而不会重新加载新信息。
我尝试了一些在这里找到的解决方案,但是没有用。
答案 0 :(得分:2)
您可能需要使用tableView.reloadData()
手动重新加载表视图。在viewWillAppear或广告播放完毕后触发的任何通知/回调中执行此操作。
答案 1 :(得分:1)
您可以在奖励视频打开控制器上设置事件通知。在viewDidLoad
GADRewardBasedVideoAd.sharedInstance().delegate = self
GADRewardBasedVideoAdDelegate会通知您奖励的视频生命周期事件。您需要在加载广告之前设置代表。此委托中最重要的事件是rewardBasedVideoAd:didRewardUserWithReward :,当用户因观看视频而受到奖励时会调用此事件。您可以选择在此委托中实现其他方法。
然后您需要实现此委托
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd,
didRewardUserWith reward: GADAdReward) {
print("Reward received with currency: \(reward.type), amount \(reward.amount).")
// RELOAD YOUR TABLE VIEW DATA HERE
}
有关详细信息,您可以查看详细的实现here
答案 2 :(得分:0)
您可以简单地使用NSNotification来调用tableView.reloadData(): 添加
NotificationCenter.default.addObserver(self, selector: #selector(reload), name: NSNotification.Name(rawValue: "load"), object: nil)
到您的tableView Controller(TVC)的ViewDidLoad 而该功能可用于您的TVC
@objc func reload()
{
//setup ur new data
self.tableView.reloadData()
}
然后只需添加
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)
在您的RewardedVideo Player中,您的self.dismiss(animated: true, completion: nil)
之前