【问题标题】:Dismissing SKScene Completely完全关闭 SKScene
【发布时间】:2017-02-05 16:21:52
【问题描述】:

好的,所以我有一个应用程序,它以一个菜单视图控制器开始,提示用户按下 4ish 按钮之一,然后加载一个视图控制器,然后呈现一个场景,用户根据按下的按钮来玩游戏。

然后,一旦满足条件(他们输掉游戏),我就会将用户重定向到另一个视图控制器,该控制器会呈现另一个场景。唯一的问题是,第二个视图控制器(我假设它是场景)仍在运行。我知道这一点是因为我在它的覆盖函数更新方法中有一个打印语句,以查看它是否仍然存在。

此外,我的旧 gameene 中有音频播放,目前仍在播放。我不会完全介意,因为稍后我将最终在所有 3 个视图控制器及其呈现的场景之间传递音频数据(全部静音)。

现在发生的唯一问题是,当我运行应用程序时,因为旧的 viewiewcontroller 和它的场景似乎仍在下面运行,它不断调用转换,这会在条件满足时导致奇怪的外观,过渡无限循环到新的视图控制器,然后回到过渡的开头,然后再次到新的视图控制器。

我试过这段代码:

let theVC = self.viewController?.storyboard?.instantiateViewController(withIdentifier: "TrumpVC") as! TrumpViewController

self.viewController?.navigationController?.pushViewController(theVC, animated: true)

self.viewController?.dismiss(animated: true, completion: {});

但这似乎根本没有帮助:(基本上我导航到一个新的视图控制器并关闭当前的视图控制器(这都是在我的场景中)

谢谢

【问题讨论】:

    标签: swift uiviewcontroller skscene dismiss


    【解决方案1】:

    解决方案:

    let theVC = self.viewController?.storyboard?.instantiateViewController(withIdentifier: "TrumpVC") as! TrumpViewController
    
    self.viewController?.navigationController?.pushViewController(theVC, animated: true)
    self.viewController?.removeFromParentViewController()
    self.viewController?.dismiss(animated: true, completion: nil)
    self.view?.presentScene(nil)
    

    【讨论】:

      猜你喜欢
      • 2014-03-22
      • 2017-09-19
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多