是否可以隐藏自动添加的导航链接视图右侧的箭头?
我想使用NavigationView->列表-> HStack-> NavigationLink_1-NavigationLink_2
显示图像网格NavigationLinks中有箭头,看起来很奇怪 https://theburningmonk.com/2019/03/dynamodb-ttl-as-an-ad-hoc-scheduling-mechanism/
答案 0 :(得分:23)
它为我工作的方式:
List {
ForEach(elements) { element in
ZStack {
CustomView(element: element)
NavigationLink(destination: DestinationView()) {
EmptyView()
}.buttonStyle(PlainButtonStyle())
}
}
}
答案 1 :(得分:3)
我发现的最简单的方法是将导航放在 .background
修饰符中,其中 opacity
为零:
List {
Text("The cell")
.background( NavigationLink("", destination: Text("The detail view controller")).opacity(0) )
}
使用此解决方案,您不会失去单元格的动态高度功能。
答案 2 :(得分:2)
唯一帮助我的是将.opacity(0)
添加到NavigationLink中,如下所示:
List {
ForEach(elements) { element in
ZStack {
CustomView(element: element)
NavigationLink(destination: DestinationView()),
label: {}).opacity(0)
}
}
}
答案 3 :(得分:1)
@State var selection: Int? = nil
var body: some View {
let navigation = NavigationLink(destination: Text("View"), tag: 1, selection: $selection) { EmptyView() }
return
VStack {
navigation
Text("Tap").onTapGesture { self.selection = 1 }
}
}
答案 4 :(得分:1)
我已经完成了
NavigationLink(destination: DestinationView()) {
EmptyView()
}
.frame(width: 0, height: 0)
.hidden()
答案 5 :(得分:1)
只有这对我有用,当我尝试在列表中的行内实现按钮点击时:
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())
}
答案 6 :(得分:1)
对我来说最好的解决方法是使用 background
:
NavigationLink(...) {}
.opacity(0)
.background(
HStack {
Text("Your custom view without arrow")
}
)
或者如果你需要动态高度作为@turingtested 发布使用 NavigationLink 作为背景
Text("Your custom view without arrow")
.background(NavigationLink( ... ) {}.opacity(0))
答案 7 :(得分:1)
尽管 .background(...).opacity(0)
有效,但在更复杂的视图中,它会通过所有视图扩展自身,并与按钮等其他元素发生冲突。
如果您需要在 List
中使用它,对我有用的方法还将 NavigationLink
标记为 .disabled(true)
:
Text(...)
.background( NavigationLink(...).opacity(0).disabled(true) )
答案 8 :(得分:0)
尝试添加到滚动视图中,以使
ScrollView(.horizontal, showsIndicators: false)
答案 9 :(得分:0)
这对我有用,只是在NavigationLink
中添加一个空的ZStack
List(viewModel.items, id: \.id) { item in
ZStack {
NavigationLink(destination: Destination()) {}
CustomView(item: item)
}
}
答案 10 :(得分:-1)
您也可以这样做: 这对我有用,
@State var boolValue: Bool = false
HStack {
Text("Your text")
Toggle(isOn: $boolValue){
Text("")
}
if boolValue {
NavigationLink(destination: DestinationView()) {
EmptyView()
}.frame(width: 0)
}
}
答案 11 :(得分:-1)
我将 navigationLink 的 opacity 设置为零,它就像一个魅力
NavigationLink(
destination: Text("Destination"),
label: {}).opacity(0)
答案 12 :(得分:-2)
它还可以与任何视图(不仅是文本)一起使用
ZStack {
Text("Some text")
NavigationLink(destination: Text("Hello")) {
EmptyView()
}.frame(width: 0)
}