Перезагрузка таблицы после просмотра награжденного видео - PullRequest
0 голосов
/ 04 июля 2018

Недавно я добавил в код функцию вознагражденного видео, и она работает хорошо. Проще говоря, когда пользователь выбирает уровень из табличного представления и просматривает вознагражденное видео, он разблокирует уровень. Но когда пользователь закрывает представление рекламы, представление таблицы остается тем же, не перезагружается с новой информацией.

Я попробовал какое-то решение, которое нашел здесь, но ничего не помогло.

Ответы [ 3 ]

0 голосов
/ 05 июля 2018

Вы можете просто сделать это с помощью NSNotification для вызова вашего tableView.reloadData (): добавить

NotificationCenter.default.addObserver(self, selector: #selector(reload), name: NSNotification.Name(rawValue: "load"), object: nil)

в таблицу ViewView Controller (TVC) ViewDidLoad и эта функция для твоего TVC

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

}

затем просто добавьте

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

перед вами self.dismiss(animated: true, completion: nil) в вашем распоряжении RewardedVideo Player

0 голосов
/ 05 июля 2018

Вы можете установить уведомление о событии на контроллере открытия видео награды. Используйте эти строки кода в 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
}

Подробно вы можете увидеть подробности реализации здесь

0 голосов
/ 04 июля 2018

Возможно, вам нужно перезагрузить табличное представление вручную, используя tableView.reloadData(). Либо сделайте это в viewWillAppear, либо в любых уведомлениях / обратных вызовах, которые вы инициируете по окончании показа объявления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...