2015-02-07 55 views
0

我想弄清楚如何爲我的SpriteKit遊戲使用分享表,當我嘗試從我的場景中呈現視圖控制器時,它會給我一個錯誤。如何在SKScene中顯示視圖控制器?

if self.nodeAtPoint(location) == self.shareButton { 
     var tempMessage = "I just got \(score) on [insert app]" 

     let activityVC:UIActivityViewController = UIActivityViewController(activityItems: [tempMessage], applicationActivities: nil) 

     self.presentViewController(activityVC, animated: true, completion: nil) 
} 

這是在我的GameOverScene中。你究竟如何去管理Swift中的viewcontrollers,因爲我看到的答案都在OBJ-C中。

謝謝!

+0

你有什麼錯誤? – 2015-02-07 04:40:07

+0

「GameOverScene沒有名爲presentViewController的成員」 – riverhawk 2015-02-07 04:44:18

+1

「self.presentViewController」必須從包含「SKScene」視圖的ViewController調用。 – rakeshbs 2015-02-07 04:57:42

回答

3

好的,我做了一些挖掘,發現了一個可行的解決方案。

基本上,我使用了NSNoticationCenter,並在我的GameViewController文件中設置了視圖控制器。

override func viewDidLoad() { 
. 
. 
NSNotificationCenter.defaultCenter().addObserver(self, selector: "showSocialNetworks", name: "showSocialNetworksID", object: nil) 
} 

並提出被稱爲

func showSocialNetworks(){ 
    var tempMessage = "Insert your message to be shared on social network" 

    let activityVC:UIActivityViewController = UIActivityViewController(activityItems: [tempMessage], applicationActivities: nil) 

    self.presentViewController(activityVC, animated: true, completion: nil) 
} 

現在跳回到我的GameOverScene功能,我設定,讓當用戶點擊分享按鈕,它會執行以下代碼

if self.nodeAtPoint(location) == self.shareButton { 
      NSNotificationCenter.defaultCenter().postNotificationName("showSocialNetworksID", object: nil) 

} 

這可能不是最乾淨的方式,但它適用於我。希望這可以幫助!

+1

幫了我很多,謝謝。 – RedEagle2000 2015-09-10 05:50:48

相關問題