2016-11-29 21 views
1

SKSceneからUIViewControllerに移動したいと思います。私のコードは以下の通りです。ただし、メソッドshowViewController()をクリックすると、ビューがナビゲートされません。これをどうすれば解決できますか?SKSceneからUIViewControllerに移動

私は私がメモリの問題があることなく、これをacheiveするためにやっていることSWIFT3XCODE 8.1

class GameScene: SKScene, SKPhysicsContactDelegate { 
    func showViewController() { 
     print("button clicked") 

     self.view!.window!.rootViewController!.performSegue(withIdentifier: "DashboardVIewControllerSegue", sender: self) 

    } 

} 

答えて

0

を使用しています。

まず、ルートviewControllerにプロトコル(デリゲート)を作成します。このviewcontroller sksceneをロードするSKViewとしてのビューが含まれています。

だから、sksceneから新しいviewcontrollerを開くときはいつでも、プロトコルを呼び出すだけです。

protocol GameProtocol { 
    func displayViewController() 
} 

:ここ

は、いくつかのコードmainViewcontrollerで です。

extension MainViewController: GameProtocol { 

    internal func displayViewController() { 


     let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 

     let popoverVC = storyboard.instantiateViewController(withIdentifier: "SettingViewController") as! SettingViewController 
//  popoverVC.modalPresentationStyle = .fullScreen 
//  popoverVC.modalPresentationStyle = .popover 
     popoverVC.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0) 

     popoverVC.view.backgroundColor = UIColor.popBackgroundColor 
     popoverVC.modalPresentationStyle = .popover 
     popoverVC.popoverPresentationController!.delegate = self 
     popoverVC.popoverPresentationController!.sourceView = self.view 
     popoverVC.popoverPresentationController!.sourceRect = CGRect(x: 0.5, y: 0.5, width: 0, height: 0) 

     popoverVC.preferredContentSize = CGSize(width: self.view.frame.width, height: self.view.frame.height) 

     self.present(popoverVC,animated: false,completion: nil) 
    } 
} 

このコードはメインコントローラに表示され、必要に応じてポップアップが表示されます。ゲームセンター内で

とゲームシーンに

func showViewController() { 
     let viewe = self.view as! GameSceneView 
     viewe.myDelegate?. displayViewController() 
    } 

は、あなたがこれを取得願っています。

関連する問題