簡體   English   中英

從SKScene導航到UIViewController

[英]Navigate from a SKScene to a UIViewController

我想從SKScene導航到UIViewController 我的代碼如下。 但是,當單擊方法showViewController() ,視圖不會被導航。 我怎么解決這個問題?

我使用的是SWIFT3XCODE 8.1

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

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

    }

}

我沒有遇到記憶問題就能做到這一點。

首先在根viewController中創建一些協議(委托)。 這個viewcontroller包含視圖作為我們加載skscene的SKView。

所以每當你想從skscene打開一個新的viewcontroller時,只需調用協議即可。

這是mainViewcontroller中的一些代碼:

protocol GameProtocol {
    func displayViewController()
}

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)
    }
}

我在maincontroller中有這個代碼,需要時彈出警報。 在gamecene中。

在游戲場景中

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

希望你明白這一點。

暫無
暫無

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

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