2017-02-13 21 views
0

Проблема в том, что Apple отклоняет мое приложение, потому что, когда кнопка нажата, чтобы купить обновление «без рекламы», это не приведет к исчезновению баннера, пока вы не закроете приложение и не -Открой это. Это связано с тем, что я инициализирую весь мой код RevMob в файле viewController.swift. У меня есть логическое значение, которое превращается в false, как только обновление происходит в этом файле viewController.swift. Итак, в следующий раз, когда вы откроете приложение и загрузите загрузку viewController, значение boolean будет установлено в false, и это не позволит показывать рекламу.Удаление рекламного баннера RevMob при покупке в приложении

Кто-нибудь знает, если это не так? Или есть простой способ заставить их немедленно исчезнуть после нажатия кнопки «Без рекламы», не закрывая приложение и не открывая его?

//BANNER AD ======================================= 
let bannerBlock:() -> Void = { 
    //Custom method defined below 
    if UserDefaults.standard.object(forKey: "adsBool") as! Bool == true 
    { 
     self.showBannerWithCustomFrame() 
    } 
     else 
    { 
     //don't show ads because user purchased 
    } 
} 
let bannerFailBlock: ((Error?) -> Void) = {error in 
    NSLog("[RevMob Sample App] Session failed to start with error: \(error!.localizedDescription)") 
} 
RevMobAds.startSession(withAppID: "00000000000000000000", 
    withSuccessHandler: bannerBlock, 
    andFailHandler: bannerFailBlock) 

Это как мой bannerView установлен в моем GameViewController

class GameViewController: UIViewController, RevMobAdsDelegate { 
    var bannerView:RevMobBannerView? 

    override func viewDidLoad() { 
    super.viewDidLoad() 

ответ

1

От RevMob's banner documentation, есть метод, называемый hideAd. Вызов этого метода при обратном вызове IAP позволит решить вашу проблему правильно?

Чтобы скрыть баннер: banner!.hideAd()

+0

Я пробовал это, но так как я определяю все это в моем режиме контроля, это не сработает. Возможно, мне придется работать с переменной, чтобы сделать ее глобальной. Я пробовал это раньше, но это немного подталкивает некоторые вещи. Может быть, путь вокруг него, хотя. –

1

Позвольте мне увидеть, если я получил вашу проблему правильно, вы хотите, чтобы скрыть свой баннер, как только покупка сделана.

Во-первых, вам необходимо установить bannerView как свойство вашего viewController.

Затем вы должны добавить этот код в функцию обратного вызова от успеха покупки:
viewController.bannerView.removeFromSuperview();

+0

У меня возникла эта ошибка при попытке: Member 'bannerView' не может использоваться в типе 'GameViewController' –

+0

Я добавил выше на мой вопрос, как моя переменная настроена –

0

Я установил ее! Спасибо за вашу помощь. Мне пришлось переместить код из GameViewController в GameScene для bannerAd, чтобы я мог удалить его, как только была сделана покупка. Работает отлично.