Xcode 轻触列表中的文本并推送到其他屏幕(查看)快捷界面

Xcode 轻触列表中的文本并推送到其他屏幕(查看)快捷界面,xcode,swiftui,swiftui-navigationlink,Xcode,Swiftui,Swiftui Navigationlink,在我的视图中,我有一个列表,其中最后一项是切换按钮和水平堆栈中的文本。我想在文本的某些部分添加操作此文本类似于条款和隐私政策。但在添加NavigationLink以移动到其他屏幕时,它添加了在文本和指示器之间留有较大空间的披露指示器,并且click正在整行工作。在swiftUI中是否有其他选项可推送到其他屏幕?我目前正在使用Xcode 11.1 var body: some View { NavigationView { List { Naviga

在我的视图中,我有一个列表,其中最后一项是切换按钮和水平堆栈中的文本。我想在文本的某些部分添加操作此文本类似于条款和隐私政策。但在添加NavigationLink以移动到其他屏幕时,它添加了在文本和指示器之间留有较大空间的披露指示器,并且click正在整行工作。在swiftUI中是否有其他选项可推送到其他屏幕?我目前正在使用Xcode 11.1

var body: some View {
    NavigationView {
        List {
            NavigationLink(destination: TestView()) {
                Text("Test")
            }
        }
    }
}
以下是如何使用NavigationLink显示的屏幕截图:

您也可以使用按钮。这是我用来让它工作的代码。我还添加了一个图像,当用户返回列表时图像会发生变化

struct ContentView: View {
   @State var showTestView = false
   @State var imageName = "heart"
   var body: some View {
        List {
            HStack{
                Image(systemName: imageName)

                Button(action: {
                    self.showTestView.toggle()
                }) {
                    Text("Test")
                }
                .sheet(isPresented: self.$showTestView) { TestView(showTestView: self.$showTestView, imageName: self.$imageName) }
            }
        }
    }
}

显示TestView时的效果与使用NavigationLink时略有不同,但它很有用且有效。

但我希望显示新屏幕的行为,而不是当前屏幕上显示的行为。推送另一个视图的唯一方法是使用NavigationLink。如果你想在同一个单元格上使用2个NavigationLink,我发现这可能很有用。
struct TestView: View {
    @Binding var showTestView: Bool
    @Binding var imageName: String
    var body: some View {
        VStack{
            Button(action: {
                self.imageName = "heart.fill"
                self.showTestView.toggle()
            }) {
                Text("Cancel")
            }
        }   
    }
}