【发布时间】:2020-12-07 06:40:14
【问题描述】:
我正在开发一个基于文本的 rpg 游戏。会有很多浏览量;在每个决定之后,用户将导航到新视图。但是如果用户关闭应用程序并重新打开它,他们将丢失所有进度并从主视图开始。
有没有办法创建一个“继续”按钮以将用户带到他们上一个视图?或者有没有办法在他们重新打开应用程序时直接打开最后一个视图?
例如,用户将从这里开始:
struct ContentView: View {
var body: some View {
NavigationLink(destination: View1()) {
Text(Start)
}
}
}
用户在 View28 上玩了一段时间后
struct View28: View {
var body: some View {
NavigationLink(destination: View29()) {
Text(Do This)
}
NavigationLink(destination: View30()) {
Text(Do That)
}
}
}
用户关闭游戏,然后重新打开,他/她又在 ContentView 上。
struct ContentView: View {
var body: some View {
NavigationLink(destination: View1()) {
Text(To View1)
}
NavigationLink(destination: LastViewedView()) {
Text(Continue)
}
}
}
有没有办法像上面一样添加“继续”按钮以将用户带到 View28?
或者有没有办法让应用程序直接重新打开 View28?
谢谢。
【问题讨论】:
-
您可以在 UserDefaults 中添加一个在会话之间持续存在的键,当您打开应用程序时,请检查 UserDefault 值。
-
我使用 UserDefaults 存储变量值,但我不知道如何存储用户在哪个视图上。
-
我会在 UserDefaults 中存储一个 String 或 Int 值,然后使用该值来确定要呈现的视图。
标签: view swiftui navigation