在视图控制器之间切换(同时使用VC)

时间:2018-07-20 09:55:47

标签: ios swift uiviewcontroller segue uistoryboardsegue

当前,我有一个主ViewController,它调用GameViewController在主SKSpriteScene前面加载一个ViewController。我在主ViewController的viewDidLoad中通过以下方式进行操作:

let gameView = self.storyboard?.instantiateViewController(withIdentifier: "Game") as! GameViewController
let top: UIViewController? = UIApplication.shared.keyWindow?.rootViewController
top?.present(gameView, animated: false, completion: nil)

当前有效,我将SKSpriteScene显示在ViewController上方,该ImageView在后​​台显示图像(带有ViewController)。

但是,现在我想切换到另一个performSegue(withIdentifier: "mySegueID", sender: nil),但不确定如何执行此操作。我尝试过的事情:

  • Segues(使用ViewController进行调用) 没用

  • 推送新的navigationController?.pushViewController(nextViewController, animated: true)(带有ViewController) 没用

  • 呈现新的GameViewController(使用与显示ViewController相同的代码)

此“当前VIEWCONTROLLLER”起作用。但是,在我呼叫下一个ViewController之后,由于通过按下新ViewController中的按钮而触发的segue将其取消后,新的ViewController不会再与“当前{{ 1}}'方法。

关于如何在ViewController之间成功切换(任何一个同时具有GameViewController)的想法吗?

1 个答案:

答案 0 :(得分:3)

我想知道隔离对您没有作用吗? 您需要给segue一个标识符,然后以某种功能或动作(例如buttonPressed)或somth来调用它。 在performSegue中(withIdentifier:“ urSegueIdentifier”,发件人:Any?.self) 我不确定发件人是否可以为零,也许尝试.self?