Zuerst richten Sie sich einen Delegaten mit einem Protokoll für Ihre View-Controller.
protocol UIViewControllerDelegate{
}
Siehe hier: https://makeapppie.com/2014/07/01/swift-swift-using-segues-and-delegates-in-navigation-controllers-part-1-the-template/ für ein schönes Tutorial, wie man diese Delegierten zu tun, dass
eine SKView Klasse erstellen, die auf Ihrem viewDidLoad in Ihrer UIViewController Klasse
class GameView : SKView
{
var delegate : UIViewControllerDelegate?
}
Dann bewirten werden, Weisen Sie den Stellvertreter Ihrem View-Controller zu.
override func viewDidLoad()
{
if let view = self.view as? GameView
{
view.delegate = self
}
}
Jetzt ist Ihre Ansicht, die einen Delegierten zu Ihrem View-Controller hat, von diesem Punkt in Ihrer Protokolldatei, stellen eine Methode
Z.B. für den Übergang
protocol UIViewControllerDelegate
{
optional func transitionToMenuVC()
}
Dann wenden Sie den Code auf Ihre View-Controller-Klasse.
class ViewController : UIViewController, UIViewControllerDelegate
{
...
func transitionToMenuVC()
{
// do transition code here
}
}
Jetzt haben Sie alles eingerichtet, damit Ihre Ansicht mit Ihrem View-Controller kommunizieren kann.
in der Szene, würden Sie nur den Blick auf die GameView der Szene werfen, und verwenden Sie den Delegaten
class GameScene : SKScene
{
...
func transition()
{
if let view = self.view as? GameView
{
view.delegate.transitionToMenuVC()
}
}
}
Sie weisen jedoch den Übergang, ist es unmöglich, von Szene zu über Controller zu sehen, weil sie 2 verschiedene Tiere. Sie werden die Ansichten wechseln und sind daher mit den Animationen für Ansichten festgefahren.
Sie müssen den RootViewController greifen. Dann kannst du dich normal von dort präsentieren. Wie auch immer, wenn du mit Spritekit arbeitest, solltest du bei Übergängen bleiben, wenn du keinen wirklichen Grund hast etwas zu tun, was du erreichen willst. Natürlich gibt es Fälle, in denen Sie zum Beispiel etwas über eine aktuelle Ansicht präsentieren müssen, aber das ist immer noch SpriteKit. Darf ich fragen, was ist der Grund dafür? – Whirlwind
@Whirlwind Ich bin mir nicht sicher, wie ich den rootViewController "packen" soll, und ich versuche Gamekit-Matchmaking, also möchte ich von einem Sprite-Kit-Menü zum Suchen von Matches wechseln, bisher kein Glück. – Asphys
Suchen Sie einfach, wie Sie den View-Controller aus der Szene heraus darstellen. Ich bin nicht am Computer, deshalb kann ich keine passende Antwort schreiben. Aber Sie werden es wahrscheinlich herausfinden. Es ist ziemlich einfach. – Whirlwind