Swiftui 快捷界面导航链接隐藏箭头

Swiftui 快捷界面导航链接隐藏箭头,swiftui,navigationview,Swiftui,Navigationview,是否有方法隐藏自动添加的导航链接视图右侧的箭头 我想使用NavigationView->List->HStack->NavigationLink_1-NavigationLink_2显示图像网格 导航链接有箭头,看起来很奇怪 它对我的作用方式: List { ForEach(elements) { element in ZStack { CustomView(element: element) NavigationLink

是否有方法隐藏自动添加的导航链接视图右侧的箭头

我想使用NavigationView->List->HStack->NavigationLink_1-NavigationLink_2显示图像网格

导航链接有箭头,看起来很奇怪
它对我的作用方式:

List { 
    ForEach(elements) { element in
        ZStack {
            CustomView(element: element)
            NavigationLink(destination: DestinationView()) {
                EmptyView()
            }.buttonStyle(PlainButtonStyle())
        }
    }
}
您也可以这样做: 这对我很有效

@State var boolValue: Bool = false


                HStack {
                    Text("Your text")
                    Toggle(isOn: $boolValue){
                        Text("")
                    }
                    if boolValue {
                        NavigationLink(destination: DestinationView()) {
                            EmptyView()
                        }.frame(width: 0)
                    }
                }

它也适用于任何视图(不仅仅是文本)


我已经完成了

NavigationLink(destination: DestinationView()) {
      EmptyView()
}
.frame(width: 0, height: 0)
.hidden()

唯一帮助我的是向NavigationLink添加
.opacity(0)
,如下所示:

List { 
    ForEach(elements) { element in
        ZStack {
            CustomView(element: element)
            NavigationLink(destination: DestinationView()), 
            label: {}).opacity(0)
        }
    }
}

这对我来说很有用,只是在
ZStack
中添加了一个空的
NavigationLink

List(viewModel.items, id: \.id) { item in
    ZStack {
        NavigationLink(destination: Destination()) {}
        CustomView(item: item)
    }
}

当我尝试在列表中的行内实现按钮点击时,只有这一点对我有效:

ZStack {
                NavigationLink(destination: FlightBoardInformation(flight: flight), tag: FlightBoardNavigation.toFlightDetailed, selection: $navigation) {
                    EmptyView()
                }
                .frame(width: 0, height: 0)
                .hidden()
                .disabled(true)
                Button(action: {
                        self.navigation = .toFlightDetailed
                }) {
                    Text("\(self.flight.airline) \(self.flight.number)")
                }.buttonStyle(PlainButtonStyle())
            }

对我来说,最好的解决方法是使用
后台

NavigationLink(…){
.不透明度(0)
.背景(
HStack{
文本(“不带箭头的自定义视图”)
}
) 
或者,如果您需要@turingtested发布的动态高度,请使用NavigationLink作为背景

Text("Your custom view without arrow")
        .background(NavigationLink( ... ) {}.opacity(0))

我发现的最简单的方法是将导航放置在
.background
修改器中,不透明度
为零:

列表{
文本(“单元格”)
.background(导航链接(“,目标:文本(“详细视图控制器”)).opacity(0))
}

使用此解决方案,您不会失去单元格的动态高度功能。

对此也很好奇,您找到答案了吗?@crazyhor77不,我回到了故事板,UICollectionView,然后在单元格上单击。请参阅:这与返回时不可能选择同一元素的情况不同。我以这种方式使用了navigationlink,一切正常。使用
表单时,这不起作用。
:`var body:some View{Form{navigationlink(目的地:Text(“视图”),tag:1,selection:$selection){EmptyView()}Text(“Tap”).ontapsignature{self.selection=1}}}`注意:上面示例中的
VStack
是不需要的。请尝试以下方法:VStack{navlink Form}我使用了
Rectangle().opacity(0.0)
而不是
EmptyView()
作为列表,它成功了。我使用了相同的解决方案,但问题是,即使箭头不可见,您仍然可以点击它。在我的应用程序中,我必须禁用此功能,否则它将崩溃。有什么想法吗?.buttonStyle(PlainButtonStyle())对我有用..hidden()应该足够切换层次结构(即将
NavigationLink
放在
HStack
的背景中),根据@turingtested的解释更好。
ZStack {
                NavigationLink(destination: FlightBoardInformation(flight: flight), tag: FlightBoardNavigation.toFlightDetailed, selection: $navigation) {
                    EmptyView()
                }
                .frame(width: 0, height: 0)
                .hidden()
                .disabled(true)
                Button(action: {
                        self.navigation = .toFlightDetailed
                }) {
                    Text("\(self.flight.airline) \(self.flight.number)")
                }.buttonStyle(PlainButtonStyle())
            }
Text("Your custom view without arrow")
        .background(NavigationLink( ... ) {}.opacity(0))