【问题标题】:Displaying UIActivityViewController in GameScene.swift在 GameScene.swift 中显示 UIActivityViewController
【发布时间】:2015-07-14 10:03:03
【问题描述】:

我开发了一个小游戏,它由主菜单、游戏本身和一个游戏结束标签组成。 我的问题是我在 GameScene.swift 文件中以编程方式添加了所有内容。

现在我可以使用这行代码呈现一个 UIActivityViewController:

class GameScene: SKScene, SKPhysicsContactDelegate {

var gameViewController: GameViewController!

在 GameViewController.swift 中,我将这段代码放在 viewDidLoad() 函数中:

scene.gameViewController = self

然后我在我的 GameScene.swift 文件中添加了以下函数:

func share()
{
    if gameViewController != nil {
        let myText = "some text"

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

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

此功能由我以编程方式添加的按钮执行,当我启动应用程序时一切正常。但是当我玩游戏并点击重播按钮并重新加载 GameScene 时,当我点击分享按钮时会收到以下消息:

致命错误:在展开可选值时意外发现 nil

请帮帮我!

【问题讨论】:

    标签: ios swift menu sprite-kit


    【解决方案1】:

    好的,我在几个小时后找到了答案。

    我没有使用我在 GameScene.swift 文件顶部声明的 gameViewController 变量。相反,我使用了以下代码行:

    func share()
    {
        let vc = self.view?.window?.rootViewController
    
        let myText = "test"
    
        let activityVC:UIActivityViewController = UIActivityViewController(activityItems: [myText], applicationActivities: nil)
    
        vc?.presentViewController(activityVC, animated: true, completion: nil)
    
    }
    

    我的问题的答案很简单,我希望我能帮助别人解决我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 1970-01-01
      相关资源
      最近更新 更多