是否有一种简单的方法来重置快速应用程序以清除所有变量并似乎从头开始?

时间:2019-07-04 14:26:00

标签: swift xcode

在我的应用游戏结束时,我想重设游戏以便再次玩。

我尝试了代码中显示的推荐方法,但是会导致:

  

线程1:信号SIGABRT错误发生。

   let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyboard.instantiateViewController(withIdentifier:       "ViewController")
        var viewcontrollers =     self.navigationController!.viewControllers
        viewcontrollers.removeLast()
        viewcontrollers.append(vc)
        self.navigationController!.setViewControllers(viewcontrollers,   animated: true)

期望能够重置游戏/应用并通过按下按钮继续进行新游戏。

2 个答案:

答案 0 :(得分:0)

你可以试试吗?

        let storyboard = UIStoryboard(name: "Main", bundle: nil) 
        let vc = storyboard.instantiateViewController(withIdentifier: "ViewController")

        let transition: UIView.AnimationOptions = .transitionFlipFromLeft
        let rootviewcontroller: UIWindow = ((UIApplication.shared.delegate?.window)!)!
        rootviewcontroller.rootViewController = vc
        let mainwindow = (UIApplication.shared.delegate?.window!)!
        UIView.transition(with: mainwindow, duration: 0.4, options: transition, animations: nil, completion: nil)

答案 1 :(得分:0)

如果您(重新)开始的ViewController类是您rootViewController的{​​{1}},那么您可以简单地调用:

UINavigationController

尝试避免使用bang运算符(navigationController?.popToRootViewController(animated: true) )以避免类似的强制展开崩溃,例如,您可以像这样安全地展开!

navigationController