ios - 在 GameScene.swift 中显示 UIActivityViewController

标签 ios swift menu sprite-kit

我开发了一个小游戏,它由主菜单、游戏本身和一个游戏结束标签组成。 我的问题是我已经以编程方式在 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/

相关文章:

ios - Swift - 如何从 Firebase 检索多个值并将它们显示在 UITABLEVIEW 上

ios - 在 UITableView 的自定义单元格中使用 slider

WPF:带按钮的动态菜单

ios - 解析、查询以根据频率查找对象

ios - 将react-native从0.59更新到0.61.4后找不到“React/RCTBundleURLProvider.h”文件

ios - 如何将自定义 header 添加到 AFNetworking 上传任务?

swift - 什么样的异常可能 String(contentsOf url :URL) throw?

swift - RxSwift/Moya - 如果通过函数返回序列将不会启动

html - CSS 下拉菜单在 Chrome 中不起作用

jsp - 检查请求 URL 是否针对当前页面,以便可以启用/禁用菜单链接