Ios 如何在Swift中使用应用内购买从多个视图中删除广告(已在1个视图中工作)

Ios 如何在Swift中使用应用内购买从多个视图中删除广告(已在1个视图中工作),ios,xcode,swift,in-app-purchase,iad,Ios,Xcode,Swift,In App Purchase,Iad,我正在制作我的第一个游戏应用程序,现在我正在进行应用内购买,这允许你从应用程序中删除广告。一切都很好,但在购买后,它只从“主屏幕”删除广告,而不是从“游戏屏幕”和“游戏覆盖屏幕”删除广告。 购买后如何从所有屏幕上删除广告 这是我的“主屏幕”中的代码/启动应用程序时看到的第一个屏幕 @IBOutlet weak var outRemoveAds: UIButton! override func viewDidLoad() { super.viewDidLoad() o

我正在制作我的第一个游戏应用程序,现在我正在进行应用内购买,这允许你从应用程序中删除广告。一切都很好,但在购买后,它只从“主屏幕”删除广告,而不是从“游戏屏幕”和“游戏覆盖屏幕”删除广告。 购买后如何从所有屏幕上删除广告

这是我的“主屏幕”中的代码/启动应用程序时看到的第一个屏幕

 @IBOutlet weak var outRemoveAds: UIButton!

    override func viewDidLoad() {
    super.viewDidLoad()

    outRemoveAds.enabled = false

// THIS IS THE CODE I USED FOR THE iAD BANNER

// Init iAd banner ======

    _adBanner = ADBannerView(frame: CGRectMake(0, self.view.frame.size.height-50, 320, 50) )
    _adBanner?.backgroundColor = UIColor.clearColor()
    self.view.addSubview(_adBanner!)

// AND AFTER PURCHASE IT DOES THIS

func removeAds() {
        _adBanner?.removeFromSuperview()
        _bannerIsVisible = false

    }

但正如我所说,它只会将其从当前视图/屏幕中删除,而不会从其他两个屏幕中删除。

没有足够的代码来查找问题,但首先必须设置

_adBanner = nil
之后

_bannerIsVisible = false
若要让垃圾收集器删除该对象,当您对其有强引用时,无法将其删除。 您确定对所有三个控制器使用相同的视图吗?还是为每个视图创建单独的控制器?如果是这样的话,你应该在

viewWillAppear

每个控制器的方法。

我有3个不同的控制器用于3个不同的视图。但我试图改变你建议的东西,但不幸的是,它不起作用。你是在购买adds disabler时为所有这些控制器调用removeAds吗?我复制了函数removeAds并将其粘贴到其他两个控制器中,但我非常确定我需要某种“if/else”方法,以便计算机知道用户是否购买了该控制器“禁用广告”与否。但我不知道该怎么做。你能帮我吗?在swift中,你可以使用全球VAR。所以只要在任何文件的开头写上var addsRemoved=false,并在初始控制器加载时设置该var。您可以在NSUserDefaults中的两次启动之间存储它