Max*_*x B 1 swiftui-navigationlink
我的 ContentView 包括一个 NavigationView,我通过 NavigationLink 向下钻取到显示列表的 OverviewView,然后通过 NavigationLink 向下钻取到 DetailView。现在我想点击 DetailView 中的文本并调出另一个视图,但是当我现在尝试向该对象添加 NavigationLink 时,我收到一条错误,指出 NavigationLink 需要嵌入到 NavigationView 中,因此我将代码更改为
\n\n NavigationView{ \n ScrollView() { \n VStack{ \n VStack(spacing: -25) { \n HStack(spacing: -25) { \n NavigationLink(destination: WarehouseOrderLinesView(warehouseOrderLines: warehouseOrderLineController.warehouseOrderLines)){ \n TaskSummaryView(title: "Total Lines", color: .blue, icon: "list.dash", value: warehouseOrderLineController.warehouseOrderLines.count) \n } \nRun Code Online (Sandbox Code Playgroud)\n\n但现在由于另一个 NavigationView 中有一个 NavigationView,我最终在顶部有 2 个导航栏。
\n\n\n\n有没有办法使用 NavigationLink 而不将其嵌入到另一个 NaviagationView 中,或者通过不使用 NavigationLink 和 .sheet 之类的东西导航到另一个视图(我不想将新视图显示为模态!)。
\n\n下面是完整的测试示例代码:
\n\n\n// \n// ContentView.swift \n// Two Navbars \n// \n// Created by Max on 2020-02-05. \n// Copyright \xc2\xa9 2020 Max. All rights reserved. \n// \n\nimport SwiftUI \n\nstruct ContentView: View { \n var body: some View { \n NavigationView{ \n ScrollView{ \n VStack{ \n NavigationLink(destination: ListView1()){ \n Text("Tap me") \n } \n\n Text("Nothing here") \n } \n } \n } \n } \n} \n\nstruct ListView1: View { \n\n var body: some View { \n List{ \n NavigationLink(destination: DetailView1()){ \n Text("Tap me one more time") \n } \n\n Text("Item 2") \n Text("Item 3") \n } \n } \n} \n\nstruct DetailView1: View { \n\n var body: some View { \n NavigationView{ \n ScrollView() { \n VStack{ \n NavigationLink(destination: DetailView2()){ \n Text("Drill down more") \n } \n Text("Nothing here") \n } \n } \n } \n } \n} \n\nstruct DetailView2: View { \n\n var body: some View { \n List { \n Text("That\'s it") \n Text("Nothing here") \n } \n } \n} \n\n\n\n\nstruct ContentView_Previews: PreviewProvider { \n static var previews: some View { \n ContentView() \n } \n} \nRun Code Online (Sandbox Code Playgroud)\n
小智 6
您只需要在根视图上有 1 个 NavigationView。删除 DetailView1 中的那个。
struct DetailView1: View {
var body: some View {
ScrollView(){
VStack {
NavigationLink(destination: DetailView2()){
Text("Drill down more")
}
Text("Nothing here")
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2788 次 |
| 最近记录: |