How to get and change a variable in my view controller from SKScene <p>Ok so here is the code</p> <pre><code>class GameViewController: UIViewController, SceneTransitionDelegate, GKGameCenterControllerDelegate, ADBannerViewDelegate { var coolbool:Bool = false ...abunch of unimportant stuff functions and stuff } </code></pre> <p>And here is what I am trying to do from my SKScene</p> <pre><code>func thing1() { let controller = GameViewController() controller.coolbool = true println(controller.coolbool) // Will say that it is true sceneDelegate.transitionToScene(Menu.self) //Menu.self is the skscene that we used to be in and will be in } func thing2() { println(controller.coolbool) // Will say that it is false if (controller.coolbool == true) { //Put rainbows over every sprite and change generator settings } } </code></pre> <p>So basically what happens is that "coolbool" is initialized as being false. Until thing1() is called causing the variable "coolbool " to change. And i confirm its change immediately after, before the transition. However after the transition (to the same scene (I'm trying to make it look different if the bool is true)) if you ask what the value is, it says its false.... even though i just set it to true.</p> <p>Anyway I assume I am doing something wrong, is their a better way to do this??? Incase you want it here is the transition function</p> <pre><code>func transitionToScene(sceneClass:Scene.Type) { playing = false var sizeRect = UIScreen.mainScreen().applicationFrame var width = sizeRect.size.width * UIScreen.mainScreen().scale var height = sizeRect.size.height * UIScreen.mainScreen().scale let skView = self.view as! SKView let scene = sceneClass(size: skView.bounds.size) scene.size = CGSizeMake(width, height) rwidth = width rheight = height swidth = width sheight = height skView.ignoresSiblingOrder = true scene.scaleMode = .AspectFill scene.sceneDelegate = self skView.presentScene(scene) } </code></pre>