ios - presentScene 导致错误的 View 加载

标签 ios swift segue gameplay-kit

我有一个名为 NeighborhoodViewController 的 viewController。它将场景加载到 viewController 中,称为 NeighborhoodScene.sks。这绝对没问题。我已经通过 NeighborhoodViewController 从场景中的特定节点设置了一个 segue。这两个函数控制这个:

func createSegue(title: String) {
    performSegueWithIdentifier(title, sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if let viewController: SearchViewController = segue.destinationViewController as? SearchViewController {
        viewController.sceneName = "game_1_1"
    }
}

一切正常。正在调用 segue。 segue 旨在调出另一个名为 SearchViewController 的 VC,它应该调出自己的场景 SearchScene1.sks。

这是它的代码:

import UIKit
import SpriteKit

class SearchViewController: UIViewController {
var sceneName: String?
var chosenScene: GameScene?

override func viewDidLoad() {
    super.viewDidLoad()

    if sceneName == "game_1_1" {
        chosenScene = GameScene(fileNamed: "SearchScene1")
    } // TODO: add the rest of the presented scenes here

    if let scene = chosenScene {
        // Configure the view.
        let skView = self.view as! SKView
        skView.showsPhysics = true
        skView.showsFPS = true
        skView.showsNodeCount = true

        /* Sprite Kit applies additional optimizations to improve rendering performance */
        skView.ignoresSiblingOrder = false

        /* Set the scale mode to scale to fit the window */
        scene.scaleMode = .AspectFill
        scene.viewController = self
        skView.presentScene(chosenScene)
    }
}
}

如果我打印出 skView 的 restorationidentifier,它属于 SearchViewController 中的 View ,这是完美的。在 skView.presentScene(chosenScene) 之前一切似乎都工作正常,此时它似乎随机设置了 NeighborhoodViewController?我如何让它调用 SearchViewController 和关联的 sks 场景 -- SearchScene1?

最佳答案

segue 用于首先引入 nextviewcontroller。

关于ios - presentScene 导致错误的 View 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39491496/

相关文章:

objective-c - 我可以在没有 StoryBoard segue 的情况下转到另一个 View 吗?只是从一个 View 调用?

ios - 在 iOS 的多个 View 中使用 UINavigationController 中的固定背景图像?

ios - 在 TableView 中保存右行

ios - 如何在 Swift 中从 Detail ViewController 更新 tableview 数组

ios - ScrollView 不缩放和水平滚动一起吗?

ios - 核心数据 NSPersistentStoreCoordinator 的 +metadataForPersistentStoreOfType :URL:error: sometimes returns nil

ios - 如何使用变异函数设置类属性?

ios - 使用 unwind segues 时未在所有 View Controller 上调用 Dealloc

ios - SwiftUI:路径的坐标空间

ios - 在 iOS 或 macOS 系统上复制所选文本后是否可以启动我的应用程序?