有没有一种简单的方法来重置swift应用程序,以清除所有变量并从头开始?

有没有一种简单的方法来重置swift应用程序,以清除所有变量并从头开始?,swift,xcode,Swift,Xcode,在我的应用程序游戏结束时,我想重置,以便可以再次玩游戏 我尝试了代码中所示的推荐方法,但它导致: 线程1:发生信号SIGABRT错误 希望能够通过按下按钮重置游戏/应用程序并继续新游戏。您能试试吗 let storyboard = UIStoryboard(name: "Main", bundle: nil) let vc = storyboard.instantiateViewController(withIdentifier: "ViewController

在我的应用程序游戏结束时,我想重置,以便可以再次玩游戏

我尝试了代码中所示的推荐方法,但它导致:

线程1:发生信号SIGABRT错误

希望能够通过按下按钮重置游戏/应用程序并继续新游戏。

您能试试吗

        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)
如果您(重新)启动的
ViewController
类是
UINavigationController
rootViewController
,则您只需调用:

navigationController?.popToRootViewController(animated: true)
尽量避免使用bang操作符(
)以避免类似的强制展开崩溃,例如,您可以安全地展开
导航控制器
,如下所示:

if let navController = navigationController {
    navController.popToRootViewController(animated: true)
}

同样的错误也会发生。考虑到这个函数是非常必要的,你会认为有一个非常简单的方法来实现这一点
if let navController = navigationController {
    navController.popToRootViewController(animated: true)
}