当前,我有一个主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
)的想法吗?
答案 0 :(得分:3)
我想知道隔离对您没有作用吗? 您需要给segue一个标识符,然后以某种功能或动作(例如buttonPressed)或somth来调用它。 在performSegue中(withIdentifier:“ urSegueIdentifier”,发件人:Any?.self) 我不确定发件人是否可以为零,也许尝试.self?