2016-02-12 62 views
3

我在應用內購買後成功測試了廣告的移除。我需要的只是在付款完成後,交易完成後,當前GameScene上的橫幅廣告仍然存在。爲了讓他們刪除,我必須重新啓動應用程序。我的GameViewController在viewDidLoad函數中有檢查。在GameScene中事務完成後,我如何「刷新」viewDidLoad?如何從GameScene中刷新GameViewController?

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 
} 

回答

0

首先,不需要再次調用viewcontroller。您可以簡單地執行以下步驟。

  • 讓我們假設您是在ViewDidLoad方法中顯示廣告讓我們說如果您要添加它您可以在某些事務成功的方法中隱藏它。
  • 如果您正在添加子視圖廣告,您可以在獲取交易成功通知的方法中將其刪除。

編輯:

目標C:

首先添加觀察在視圖控制器,你控制廣告:

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

後,在同一視圖 - 控制新增通知方式:

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

現在你在哪裏得到應用程式內購買交易成功的方法,只需要調用觀察這樣的方法:

[[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 
} 

現在你在哪裏得到應用程式內購買交易成功的方法,只需要調用觀察這樣的方法:

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

希望它會幫助你。

+1

問題是,viewcontroller控制我的所有gamescenes橫幅廣告和交易發生在gamescene。 – Devbot100

+0

@ Devbot100比您可以在該視圖控制器中添加觀察者並在事務成功時調用它 – Mayur

+1

您可以向答案添加示例嗎? – Devbot100