我正在使用GADBannerView来显示横幅广告。这是我加载广告的方式:

override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(true)

        if !pro {
            // In this case, we instantiate the banner with desired ad size.
            bannerView = GADBannerView(adSize: kGADAdSizeBanner)

            addBannerViewToView(bannerView)

            bannerView.adUnitID = myAdUnit
            bannerView.rootViewController = self
            bannerView.load(GADRequest())

            bannerView.delegate = self

            print("did load banner")
        } else {
            if bannerView != nil {
                bannerView.isHidden = true
                bannerView.removeFromSuperview()
                print("Removed bannerView")
            }
        }
    }


因此加载工作正常。我的第二个视图控制器连接在标签栏控制器中。当我在第二个视图控制器中按unlockButton时,它将值pro设置为true。导航回第一个视图控制器时,我可以看到它在日志视图中显示为Removed bannerView,但是横幅仍然在那里。有小费吗?

最佳答案

如果要摆脱GADBannerView类的所有子视图,只需执行以下操作:

for v in view.subviews {
    if v is GADBannerView {
        v.removeFromSuperview()
    }
}

07-27 13:31