Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to perform segue from within a SKScene?

I have been trying to perform a segue from within a sprite kit SKScene layer. My application requires the user to touch an image on the scene that would push up a new UIViewController. But every time I try to perform from within the SKScene game layer, it gives me output with has no segue with identifier error. I do have a segue and have specified it with an identifier.

My simple question, how can one perfrom segue with a SKScene game layer running? Please help me out.

like image 664
Arjun Busani Avatar asked Oct 02 '13 17:10

Arjun Busani


2 Answers

Segues belong to view controllers, not SpriteKit scenes. If you want to perform a segue from within a SpriteKit node's event handling code, you'll need to look up the view controller that owns the view presenting the scene. For example, in a SKScene subclass' touchesBegan:withEvent: method:

UIViewController *vc = self.view.window.rootViewController;
[vc performSegueWithIdentifier:@"id" sender:nil];
like image 93
rickster Avatar answered Oct 29 '22 15:10

rickster


Swift version :

self.view!.window!.rootViewController!.performSegueWithIdentifier("gameOverSegue", sender: self)
like image 45
Alvin George Avatar answered Oct 29 '22 17:10

Alvin George