Ios SwiftUI是否有内置的、基于堆栈的导航器,不需要列表布局?
我想要一种在SwiftUI中使用基于堆栈的导航的方法。每当我试图查找如何执行此操作时,我都会获得有关Ios SwiftUI是否有内置的、基于堆栈的导航器,不需要列表布局?,ios,swift,swiftui,Ios,Swift,Swiftui,我想要一种在SwiftUI中使用基于堆栈的导航的方法。每当我试图查找如何执行此操作时,我都会获得有关NavigationView的信息。但是,它看起来像是用来显示一个列表,当点击该列表时,每个条目都会导航到一个页面。有没有一种方法可以像NavigationView那样使用基于堆栈的导航,而不必遵循列表结构?因此,NavigationView用于启用对其他视图的导航。这可以用于任何类型的视图。以下示例将显示两个屏幕:ContentView和DetailView struct ContentView
NavigationView
的信息。但是,它看起来像是用来显示一个列表,当点击该列表时,每个条目都会导航到一个页面。有没有一种方法可以像NavigationView
那样使用基于堆栈的导航,而不必遵循列表结构?因此,NavigationView用于启用对其他视图的导航。这可以用于任何类型的视图。以下示例将显示两个屏幕:ContentView和DetailView
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
Text("Main View")
NavigationLink("Go to Detail", destination: DetailView())
}
.navigationBarTitle("Content View")
}
}
}
struct DetailView: View {
var body: some View {
Text("Detail body")
.navigationBarTitle("Detail")
}
}
如果按“转到详细信息”导航链接,则SwiftUI会将目的地
视图推到屏幕上。按下详细视图上的后退按钮将弹出当前视图并返回到内容视图
。您可以使用一些修改器使用标题和按钮修改导航视图
,但请注意,.navigationBarTitle()
修改器必须在导航视图
的内部使用,而不是外部
总之,NavigationView可以与任何类型的视图一起使用,并且不需要列表。当我在iPad上预览时,如果不需要列表,它看起来一点也不像我期望的那样。有没有一种方法可以禁用由
NavigationView
自动生成的边栏内容,并让它像在手机上一样进行渲染?是的,您需要指定导航视图样式。使用NavigationView
上的.navigationViewStyle(StackNavigationViewStyle())
修改器,它将仅呈现ContentView,然后在按下按钮时全屏按下DetailView。谢谢!这就是我一直在寻找的,我不知道为什么这么难找到。