簡體   English   中英

從SKScene過渡到UIViewcontroller

[英]Transition from SKScene to UIViewcontroller

例如,如果我有:

class SpriteKitScene: SKScene {
...
}

在其中我想要一個圖像,當點擊(按下,單擊,觸摸任何東西)時,該圖像會加載另一個文件:

class UiViewcontrollerScene: UIViewcontroller {
...
}

我知道如何從SKScene過渡到SKScene,但是我需要從SKScene過渡到UIViewcontroller。

首先,為您的視圖控制器使用協議設置自己的委托。

protocol UIViewControllerDelegate{
}

參見此處: https//makeapppie.com/2014/07/01/swift-swift-using-segues-and-delegates-in-navigation-controllers-part-1-the-template/ ,以獲取有關如何去做

創建一個將托管此委托的SKView類

class GameView : SKView
{
       var delegate : UIViewControllerDelegate?
}

然后在UIViewController類的viewDidLoad上,將委托分配給視圖控制器。

override func viewDidLoad()
{
    if let view = self.view as? GameView
    {
        view.delegate = self
    }
}

現在,您的視圖已經有了一個視圖控制器的委托,從這一點開始,在協議文件中,創建一個過渡方法

例如

protocol UIViewControllerDelegate
{
    optional  func transitionToMenuVC()
}

然后將代碼應用於視圖控制器類。

class ViewController : UIViewController, UIViewControllerDelegate
{
   ...
   func transitionToMenuVC()
   {
       // do transition code here
   }
}

現在,您已經為視圖與視圖控制器進行通信設置了一切。

在您的場景中,您只需將場景的視圖投射到GameView,然后使用委托進行過渡

class GameScene : SKScene
{
  ...
  func transition()
  { 

       if let view = self.view as? GameView
       {
           view.delegate.transitionToMenuVC()
       }
  }
}

但請注意,由於它們是2種不同的動物,因此不可能從場景轉換到視圖控制器。 您將過渡視圖,因此將使用為視圖提供的動畫而卡住。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM