struct App1: App {
var body: some Scene {
WindowGroup {
NavigationView {
SideBar()
Text("SCREEN 1")
}
}
}
}
where
SideBar()
是导航链接的列表,如下所示:struct SideBar: View {
var body: some View {
List {
NavigationLink(destination: SomeListView1()){
Text("Item1")
}
NavigationLink(destination: SomeListView2()){
Text("Item2")
}
NavigationLink(destination: SomeListView3()){
Text("Item3")
}
}
}
}
where
SomeListViewn()
包含一个项目列表。
当我单击侧栏中的不同导航链接时,相关视图每次都会重新加载。举例滚动位置并重新定位视图。我希望导航的视图记住它们的状态,因此当您切换到侧边栏中的不同项目并切换后,您可以继续在关闭的地方继续。如何实现?
使用NavigationView的instead您可能想要的是将TabView与New .sideBaradaptable样式一起使用,如此示例:
Item1
Https:Https: //developer.apple.com/forums/thread/764764
).
如果您需要支持MACOS上的较低版本,因此需要使用NavigationView / navigationsplitview,最简单的替代解决方案可能是使用@ScenEstorage来保持每个视图的状态(假设您在侧栏中使用不重复重复的侧栏中的独特视图) .