如何从GameScene.swift中关闭ViewController?

编码器1000

问题:如何从GameScene.swift中关闭ViewController?


情况:我的SpriteKit游戏中有2个VC,如下所示:

ViewController.swift ----按Play -----> GameViewController

当玩家失败时,我想关闭GameViewController,以便玩家可以再次按一下play。我在GameScene.swift中检查玩家的损失,并希望从那里解散GameVC。


注意:用谷歌搜索没有成功。


我尝试过的是:

1)在我的GameScene.swift中创建一个gameVC实例并将其关闭,如下所示:

let gameVC = GameViewController()
gameVC.dismissViewController(false,completion: nil)

2)做:

self.view.window!.rootViewController?.dismissViewControllerAnimated(false, completion: nil)

那些由于明显的原因而无法工作^^

亚伦·布拉格(Aaron Brager)

您不想“抢”现有实例:https : //pragprog.com/articles/tell-dont-ask

您需要GameScene将对引用的引用交给视图控制器,以便可以将其关闭,或者使用委托模式向后传递给控制对象,以使VC被关闭/关闭。

一个简单的例子……您可以在中添加一个GameViewController属性GameScene,然后在适当的时候关闭VC:

class GameScene: SKScene {
    var gameVC: GameViewController?

    func gameDidEnd() {
        gameVC?.dismissViewControllerAnimated(true) {
            // if desired, do any cleanup after the VC is dismissed
        }
    }
}

然后,GameScene首先在创建对象时设置此属性

if let gameScene = GameScene(fileNamed: "MyScene") {
    gameScene.gameVC = someGameVC
}

这种简单的方法将GameScene与和紧密耦合GameViewController,如果您想在不使用其他对象的情况下使用其中一个对象,则将变得更加困难。但是对于这个简单的用例,可能很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Swift在iOS中关闭ViewController

来自分类Dev

Swift,如何调用GameScene扩展中的函数?

来自分类Dev

如何在 SpriteKit 中重新加载 GameScene

来自分类Dev

在Swift中关闭模式呈现的视图控制器后,如何重新加载ViewController?

来自分类Dev

如何在Swift中使用SpriteKit从GameViewController中的GameScene中调用函数?

来自分类Dev

如何在GameViewController.swift中加载不同于GameScene.swift的spritekit文件?

来自分类Dev

当我单击“重播”按钮时,仅运行GameScene.sks,而不运行GameScene.swift ...我如何才能同时玩这两个游戏?

来自分类Dev

如何在我的GameScene.m文件中添加一个actionRecognizer?

来自分类Dev

如何从GameScene刷新GameViewController?

来自分类Dev

GameScene中的UIActivityViewController

来自分类Dev

如何在另一个ViewController中关闭一个ViewController?

来自分类Dev

关闭ViewController#2后,如何在ViewController#1中重新加载Data()?

来自分类Dev

关闭ViewController#2后,如何在ViewController#1中重新加载Data()?

来自分类Dev

在GameScene中显示UIAlertController(SpriteKit / Swift)

来自分类Dev

如何关闭多个ViewController而不是初始ViewController

来自分类Dev

如何同时使用swift关闭和取消初始化(Game)ViewController?

来自分类Dev

如何从右到左关闭模态ViewController?

来自分类Dev

如何在Swift中从AppDelegate更改ViewController中的文本标签?

来自分类Dev

如何使用Swift从ViewController读取AppDelegate中的变量值

来自分类Dev

如何在Swift中获取对先前viewController的引用?

来自分类Dev

下载后如何仅在Swift中显示ViewController?

来自分类Dev

如何将swift类导入到ViewController中?

来自分类Dev

如何在Swift中的多个ViewController之间共享数据

来自分类Dev

如何使用Swift在LaunchScreen中更改初始ViewController?

来自分类Dev

如何在Swift中获取对先前viewController的引用?

来自分类Dev

如何在swift中登录viewController后设置swrevealController

来自分类Dev

Swift:如何从Singleton类访问ViewController中存在的CollectionView

来自分类Dev

如何在 Swift 中从其 ViewController 获取 UIView 子类实例

来自分类Dev

SpriteKit模板中GameScene.swift和GameScene.sks文件之间的关系是什么

Related 相关文章

  1. 1

    如何使用Swift在iOS中关闭ViewController

  2. 2

    Swift,如何调用GameScene扩展中的函数?

  3. 3

    如何在 SpriteKit 中重新加载 GameScene

  4. 4

    在Swift中关闭模式呈现的视图控制器后,如何重新加载ViewController?

  5. 5

    如何在Swift中使用SpriteKit从GameViewController中的GameScene中调用函数?

  6. 6

    如何在GameViewController.swift中加载不同于GameScene.swift的spritekit文件?

  7. 7

    当我单击“重播”按钮时,仅运行GameScene.sks,而不运行GameScene.swift ...我如何才能同时玩这两个游戏?

  8. 8

    如何在我的GameScene.m文件中添加一个actionRecognizer?

  9. 9

    如何从GameScene刷新GameViewController?

  10. 10

    GameScene中的UIActivityViewController

  11. 11

    如何在另一个ViewController中关闭一个ViewController?

  12. 12

    关闭ViewController#2后,如何在ViewController#1中重新加载Data()?

  13. 13

    关闭ViewController#2后,如何在ViewController#1中重新加载Data()?

  14. 14

    在GameScene中显示UIAlertController(SpriteKit / Swift)

  15. 15

    如何关闭多个ViewController而不是初始ViewController

  16. 16

    如何同时使用swift关闭和取消初始化(Game)ViewController?

  17. 17

    如何从右到左关闭模态ViewController?

  18. 18

    如何在Swift中从AppDelegate更改ViewController中的文本标签?

  19. 19

    如何使用Swift从ViewController读取AppDelegate中的变量值

  20. 20

    如何在Swift中获取对先前viewController的引用?

  21. 21

    下载后如何仅在Swift中显示ViewController?

  22. 22

    如何将swift类导入到ViewController中?

  23. 23

    如何在Swift中的多个ViewController之间共享数据

  24. 24

    如何使用Swift在LaunchScreen中更改初始ViewController?

  25. 25

    如何在Swift中获取对先前viewController的引用?

  26. 26

    如何在swift中登录viewController后设置swrevealController

  27. 27

    Swift:如何从Singleton类访问ViewController中存在的CollectionView

  28. 28

    如何在 Swift 中从其 ViewController 获取 UIView 子类实例

  29. 29

    SpriteKit模板中GameScene.swift和GameScene.sks文件之间的关系是什么

热门标签

归档