由于在视图层次结构中应该只使用一个 NavigationView,您如何处理要呈现的初始视图在应用程序启动时确定的情况?
@main
struct heartbreaksApp: App {
let token = UserDefaults.standard.value(forKey: "token")
var body: some Scene {
return WindowGroup {
if token != nil {
Campaigns()
} else {
Login()
}
}
}
}
因此,如果令牌为 nil,我们将转到声明 NavigationView 的登录,当我们登录时,NavigationLink 会将我们带到 Campaigns 视图。但是,如果令牌不是 nil,我们会直接进入没有 Navigation View 的 Campaigns 视图,因此无法从那里导航到其他视图。如果我在 Campaigns 中也声明了一个 Navigation View,我最终会得到两个导致各种破坏的,例如 2 个后退按钮,一个指向 Login,一个指向 Campaigns。我显然做错了......请看图片