无法在 iOS 中以编程方式隐藏 admob 横幅

Unable to hide admob banner programatically in iOS

我在游戏中似乎无法隐藏Admob横幅,使用以下方法显示;

bannerView_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeSmartBannerPortrait];
    bannerView_.delegate=self;
    bannerView_.adUnitID = ADMOB_ID;
    bannerView_.rootViewController = self.viewController;
    [viewController.view addSubview:bannerView_];
    GADRequest *request =[GADRequest request];
    [bannerView_ loadRequest:request];

当试图隐藏它时,即使是为了测试它,我也将它连接到一个按钮上

- (void)removeBanner{

    NSLog(@"should be removing banner");
    [bannerView_ setHidden:YES];
    [bannerView_ removeFromSuperview];
}

我已经在 removeBanner 中尝试了上述两个选项,但是 none 会使横幅消失?

有几件事要检查

  1. 你是否多次调用第一个函数?断言 bannerView_ 尚未设置。如果它被多次调用,您只会删除最后一个。

  2. bannerView_ 不知何故 nilremoveBanner 中吗?

编辑:删除后,您可能应该将 bannerView_ 设置为 nil(但我怀疑这是否重要)。此外,您可以在 viewController.view 上调用 setNeedsDisplay(然后 displayIfNeeded 强制它立即发生)