繁体   English   中英

如何从GameScene刷新GameViewController?

[英]How to refresh GameViewController from GameScene?

我在应用内购买后成功测试了广告的删除情况。 我需要的只是在完成付款后,交易完成后,当前GameScene上的横幅广告仍然存在。 为了删除它们,我必须重新启动应用程序。 我的GameViewController检查了viewDidLoad函数。 如何在GameScene中完成交易后“刷新”viewDidLoad?

override func viewDidLoad() {
    super.viewDidLoad()

    NSNotificationCenter.addObserver(self, selector: "doRemoveAds:", name: "RemoveAds",object:nil)
    if let scene = StartScene(fileNamed:"StartScene") {

        let skView = self.view as! SKView
        skView.showsFPS = false
        skView.showsNodeCount = false
        skView.ignoresSiblingOrder = true
        scene.scaleMode = .AspectFill
        skView.presentScene(scene)
    }

    if NSUserDefaults.standardUserDefaults().boolForKey("RemoveAds") == false{
        loadBanner()
    }
}

@objc func doRemoveAds(notification: NSNotification) {
    adBanner.hidden = true
}

首先,没有必要再次召回viewcontroller。 您只需执行以下步骤即可。

  • 假设您在ViewDidLoad方法中显示广告,请说明您是否正在添加它您可以在交易成功的某种方法中隐藏它。
  • 如果您正在执行添加子视图广告,则可以在获得事务成功通知的方法中将其删除。

编辑:

目标C:

首先在控制广告的视图控制器中添加观察者:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doRemoveHideAds:) name:@"RemoveOrHideAds" object:nil];

之后在同一个viewcontroller中添加通知方法:

-(void)doRemoveHideAds:(NSNotification*)notification {
// Hide Or remove Ads
}

现在在你获得inApp购买交易的方法中,成功方法就像这样调用Observer:

[[NSNotificationCenter defaultCenter] postNotificationName:@"RemoveOrHideAds" object:obj];

迅速:

首先在控制广告的视图控制器中添加观察者:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "doRemoveHideAds:", name: "RemoveOrHideAds", object: nil)

之后在同一个viewcontroller中添加通知方法:

func doRemoveHideAds (notification: NSNotification){
// Hide Or remove Ads
}

现在在你获得inApp购买交易的方法中,成功方法就像这样调用Observer:

NSNotificationCenter.defaultCenter().postNotificationName("RemoveOrHideAds", object: nil)

希望它会对你有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM