Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 观看视频后重新加载表视图_Swift_Uitableview_Reloaddata_Admob Rewardedvideoad - Fatal编程技术网

Swift 观看视频后重新加载表视图

Swift 观看视频后重新加载表视图,swift,uitableview,reloaddata,admob-rewardedvideoad,Swift,Uitableview,Reloaddata,Admob Rewardedvideoad,最近我在代码中实现了奖励视频功能,效果很好。简单地说,当用户从表视图中选择关卡并观看奖励视频时,它将解锁关卡。但当用户关闭广告视图时,表视图保持不变,不会重新加载新信息 我尝试了我在这里找到的一些解决方案,但没有任何效果。您可能需要使用tableView.reloadData()手动重新加载表视图。在视图中或在广告播放结束后触发的任何通知/回调中执行此操作。您只需使用NSNotification调用tableView.reloadData()即可: 加 到您的tableView控制器(TVC)的

最近我在代码中实现了奖励视频功能,效果很好。简单地说,当用户从表视图中选择关卡并观看奖励视频时,它将解锁关卡。但当用户关闭广告视图时,表视图保持不变,不会重新加载新信息


我尝试了我在这里找到的一些解决方案,但没有任何效果。

您可能需要使用
tableView.reloadData()
手动重新加载表视图。在视图中或在广告播放结束后触发的任何通知/回调中执行此操作。

您只需使用NSNotification调用tableView.reloadData()即可: 加

到您的tableView控制器(TVC)的ViewDidLoad 而这个函数就是我们的TVC

@objc func reload()
{
      //setup ur new data
      self.tableView.reloadData()

}
然后再加上

  NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)

在ur
self.disclose之前(动画:true,完成:nil)
在ur RewardedVideo Player中,您可以在奖励视频打开控制器上设置事件通知。在
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
}

有关详细信息,请参见详细实施

顺便提一下,解锁过程运行良好。也就是说,如果我打开另一个视图控制器并返回到表视图,单元格将用新信息更新。它可以工作。谢谢沙米姆的详细解释。
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd,
didRewardUserWith reward: GADAdReward) {
    print("Reward received with currency: \(reward.type), amount \(reward.amount).")

 // RELOAD YOUR TABLE VIEW DATA HERE
}