我有一个macOS的Master/Detail应用程序,使用侧边栏菜单的NavigationView在左侧面板中,并在右侧面板中显示各种详细视图。
我希望保留详细视图,当用户选择不同的侧边栏菜单选项时,这样如果用户通过选择先前选择的菜单选项进行切换,则应用程序应该显示最初创建的详细视图以及任何用户更改或选择。
目前,似乎SwiftUI在选择菜单选项时会从头开始创建新视图,而不是仅显示先前创建的视图。例如,如果详细视图具有ListView,并且用户先前选择了项目,则此选择将丢失,以及任何先前的滚动位置。
是否有任何方式使用SwiftUI实现这一点?
我希望保留详细视图,当用户选择不同的侧边栏菜单选项时,这样如果用户通过选择先前选择的菜单选项进行切换,则应用程序应该显示最初创建的详细视图以及任何用户更改或选择。
目前,似乎SwiftUI在选择菜单选项时会从头开始创建新视图,而不是仅显示先前创建的视图。例如,如果详细视图具有ListView,并且用户先前选择了项目,则此选择将丢失,以及任何先前的滚动位置。
是否有任何方式使用SwiftUI实现这一点?
@State
仅用于视图内部状态,如隐藏/显示某些内容,突出显示等,但是持久的视图模型应该存储在外部,可以使用@EnvironmentObject
、@ObservedObject
(针对 ObservableObject)等。 - Asperi