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