所以我在Xcode中有一个基本的游戏。我从Xcode的基本游戏模板开始,主要在'GameScene.swift'中构建我的游戏。当我完成游戏时,我想添加一个带有播放按钮的开始屏幕,所以我创建了一个新的UIViewController并添加了一个按钮。我控制点击并将按钮拖动到GameViewController并创建了一个Modal Segue。然后我希望游戏在玩家死亡时返回。我尝试了各种方法来解散视图,但没有一个工作。我是新手,很快就需要帮助。让我知道找到解决方案需要哪些代码/信息。我已经尝试过在互联网上找到的所有内容。我以为我找到了一种解决方法,通过添加一个按钮和Segue到GameViewController到菜单但是在多次推送之后它阻塞了系统并减速爬行,因为没有人被解雇。我可以提供所需的任何代码。
在GameViewController类的GameViewController.swift内部,我尝试制作一个在游戏结束时调用的函数。 我试图弹出并关闭视图控制器。该函数被调用并且一行打印到控制台但视图仍然存在。打印到控制台的唯一内容是'nil'
class GameViewController: UIViewController {
func end(){
print(navigationController?.viewControllers as Any)
self.navigationController?.popViewController(animated: true)
self.dismiss(animated: true, completion: nil)
}
Here is the screenshot of the storyboard
提前感谢。
答案 0 :(得分:4)
如果按下viewController,则使用self.navigationController?.popViewController(animated: true)
如果您以模态方式呈现,则使用
self.dismiss(self, animated: true)
当你使用模态segue呈现它时
self.presentingViewController?.dismiss(animated: true, completion: nil)
答案 1 :(得分:0)
我在故事板中有一个模式segue,从一个视图控制器到另一个视图控制器。然后我有一个按钮,它连接到刚运行的IBAction
dismiss(animated: true, completion: nil)
检查并重做从故事板到代码的连接。在对代码进行大量更改时,Xcode有时会丢失连接。