我开发了一个小游戏,它由主菜单、游戏本身和一个游戏结束标签组成。 我的问题是我已经以编程方式在 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 重新加载时,当我点击共享按钮时,我会收到以下消息:
fatal error: unexpectedly found nil while unwrapping an Optional value
请帮助我!
最佳答案
好的,我在几小时后找到了答案。
我没有使用我在 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)
}
我的问题的答案非常简单,我希望我的解决方案可以帮助别人。
关于ios - 在 GameScene.swift 中显示 UIActivityViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31403524/