gpt4 book ai didi

ios - 重置主要内容 View - Swift UI

转载 作者:行者123 更新时间:2023-12-04 08:24:54 24 4
gpt4 key购买 nike

我的应用程序有一个用户使用的主屏幕,然后一旦他们使用完就转到另一个 View ,当前实现为 .fullscreencover。我希望用户能够按下一个按钮,应用程序几乎会重置,将所有内容恢复到应用程序首次启动时的状态,并重置所有变量和类。

我尝试过的一种方法是在最终 View 之上再次打开 View ,但这不会重置它。这是我试过但不起作用的代码:

Button("New Game"){
newGame.toggle()
}
.fullScreenCover(isPresented: $newGame){
ContentView()
}

除此之外,我还尝试了导航 View ,但这会导致我的应用程序功能出现更多问题。

是否有一行代码可以让您这样做?

最佳答案

可能的方法是使用全局应用状态

class AppState: ObservableObject {
static let shared = AppState()

@Published var gameID = UUID()
}

并让根内容 View 依赖于 gameID

@main
struct SomeApp: App {
@StateObject var appState = AppState.shared // << here

var body: some Scene {
WindowGroup {
ContentView().id(appState.gameID) // << here
}
}
}

现在要从我们刚刚设置新的 gameID 的任何地方将所有内容重置为初始状态:

Button("New Game"){
AppState.shared.gameID = UUID()
}

关于ios - 重置主要内容 View - Swift UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65309064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com