swift: как сохранить данные контроллера для использования GameKit GameController? - PullRequest
0 голосов
/ 13 мая 2019

У меня есть начальный контроллер вида, который получает имя игрока из ввода и переходов к GameKit GameController с помощью segue.

Я пробовал этот метод подготовки перехода в моем LaunchViewController

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        print(usernameTextField.text) // returns users name correctly
        if let navigationVC = segue.destination as? UINavigationController, let myViewController = navigationVC.topViewController as? GameViewController{
            myViewController.playername = usernameTextField.text
        }
    }

и в моем GameController я пытаюсь:

class GameViewController: UIViewController {

     var playername:String?

            override func viewDidLoad() {
                super.viewDidLoad()

                // Load 'GameScene.sks' as a GKScene. This provides gameplay related content
                // including entities and graphs.
                if let scene = GKScene(fileNamed: "GameScene") {

                    // Get the SKScene from the loaded GKScene
                    if let sceneNode = scene.rootNode as! GameScene? {

                        // Copy gameplay related content over to the scene
                        sceneNode.entities = scene.entities
                        sceneNode.graphs = scene.graphs

                        print(self.playername) //returns nil
                        sceneNode.userData?.setValue(self.playername, forKey: "playername")
                        print(sceneNode.userData)

     // Set the scale mode to scale to fit the window
                    sceneNode.scaleMode = .aspectFill

                    // Present the scene
                    if let view = self.view as! SKView? {
                        view.presentScene(sceneNode)

                        view.ignoresSiblingOrder = true

                        view.showsFPS = true
                        view.showsNodeCount = true
                    }
                }
            }
        }

В моей игровой сцене я пытаюсь получить доступ к данным пользователя со сцены.

однакоПеременная playername возвращает ноль в GameController.

Как правильно установить значение для элемента var на контроллерах?

...