将一个 NavigationLink 强制到 SwiftUI 中的详细信息视图
Force one NavigationLink to the detail view in SwiftUI
我的应用程序中有一个主(主要)细节设置,其中顶级 NavigationView 中的大部分列表项都转到另一个子菜单项列表,带有 .isDetailLink(false),然后是那些子菜单项然后导航到详细视图。这一切都按预期工作。
我还尝试在顶级列表中放入 NavigationLink 以进入我的设置页面,我想将其强制进入详细信息视图。这个 link 没有子菜单,所以我尝试直接导航到它并强制使用 .isDetailView(true)。但是,这会导致视图在上面的主要 window 中打开,但一开始是隐藏的。详细信息 window 只有一个后退按钮,然后可以从菜单栏中弹出预期的视图。
有没有办法强制在详细视图中只打开设置菜单项,基本上跳过一个导航级别?
谢谢!
这是我目前正在尝试的简化版本:
struct ContentView: View {
var body: some View {
NavigationView {
List {
NavigationLink(destination: SubMenu1()) {Text("MenuItem1")}
.isDetailLink(false)
NavigationLink(destination: SubMenu2()) {Text("MenuItem2")}
.isDetailLink(false)
NavigationLink(destination: SubMenu3()) {Text("MenuItem3")})
.isDetailLink(false)
NavigationLink(destination: SettingsView()) {Text("Settings")}
.isDetailLink(true)
}
}
}
}
struct SubMenu: View {
var body: some View {
List {
ForEach(menuItems, id: \.self) { item in
NavigationLink(destination: DetailView(item)) {
Text(item)
}
}
}
}
}
更新
我截取了一些屏幕截图来说明问题:
顶级导航视图:
选择了其中一个子菜单,并且 .isDetailView(false)。这工作正常:
设置没有像其他菜单那样的子菜单,所以我希望它直接在右侧打开。相反,它像这样打开,并且只有在按下后退按钮时才会显示:
你好,我看到你的截图了。我认为您在“设置”中使用了 NavigationView 2 次。请删除其中任何一个,它应该可以正常工作!
我的应用程序中有一个主(主要)细节设置,其中顶级 NavigationView 中的大部分列表项都转到另一个子菜单项列表,带有 .isDetailLink(false),然后是那些子菜单项然后导航到详细视图。这一切都按预期工作。
我还尝试在顶级列表中放入 NavigationLink 以进入我的设置页面,我想将其强制进入详细信息视图。这个 link 没有子菜单,所以我尝试直接导航到它并强制使用 .isDetailView(true)。但是,这会导致视图在上面的主要 window 中打开,但一开始是隐藏的。详细信息 window 只有一个后退按钮,然后可以从菜单栏中弹出预期的视图。
有没有办法强制在详细视图中只打开设置菜单项,基本上跳过一个导航级别?
谢谢!
这是我目前正在尝试的简化版本:
struct ContentView: View {
var body: some View {
NavigationView {
List {
NavigationLink(destination: SubMenu1()) {Text("MenuItem1")}
.isDetailLink(false)
NavigationLink(destination: SubMenu2()) {Text("MenuItem2")}
.isDetailLink(false)
NavigationLink(destination: SubMenu3()) {Text("MenuItem3")})
.isDetailLink(false)
NavigationLink(destination: SettingsView()) {Text("Settings")}
.isDetailLink(true)
}
}
}
}
struct SubMenu: View {
var body: some View {
List {
ForEach(menuItems, id: \.self) { item in
NavigationLink(destination: DetailView(item)) {
Text(item)
}
}
}
}
}
更新 我截取了一些屏幕截图来说明问题:
顶级导航视图:
选择了其中一个子菜单,并且 .isDetailView(false)。这工作正常:
设置没有像其他菜单那样的子菜单,所以我希望它直接在右侧打开。相反,它像这样打开,并且只有在按下后退按钮时才会显示:
你好,我看到你的截图了。我认为您在“设置”中使用了 NavigationView 2 次。请删除其中任何一个,它应该可以正常工作!