[英]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.