Har*_*ryW 10 xcode ios swift swiftui
我正在尝试删除屏幕右侧显示的带有包含视图的 navigationLink 的 V 形符号。这是我的代码如下:
NavigationView {
List {
NavigationLink(destination: DynamicList()) {
ResultCard()
}
...
}
Run Code Online (Sandbox Code Playgroud)
Stack Overflow 上的其他答案建议使用如下内容:
NavigationLink(...)
.opacity(0)
Run Code Online (Sandbox Code Playgroud)
但是,这在我的情况下不起作用,因为将不透明度降低到 0 也会删除我尝试显示的视图。“.hidden”也是如此。我到处搜索过,我能找到的唯一可行的解决方案是改变填充,以便将 V 形“推”到侧面,但这是一个糟糕的解决方案,因为“ResultCard”视图会显得不稳定/关闭-以不同的显示尺寸为中心。
也许无法删除 V 形 - 如果是这种情况,是否有其他方法可以允许用户点击“ResultCard”视图并进入新页面,而不是通过导航关联?
我正在用头撞墙,所以非常感谢任何想法。
jn_*_*pdx 15
您可以.overlay
在标签视图上使用带有 set 的 aNavigationLink
作为EmptyView()
其标签:
struct ContentView : View {
var body: some View {
NavigationView {
List {
NavigationLink("Link 1", destination: Text("Hi"))
Text("Test")
.overlay(NavigationLink(destination: Text("Test"), label: {
EmptyView()
}))
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
更新:另一个解决方案,似乎适用于除文本之外的其他类型的视图:
struct ContentView : View {
@State private var linkActive = false
var body: some View {
NavigationView {
List {
NavigationLink("Link 1", destination: Text("Hi"))
Button(action: { linkActive = true }) {
Image(systemName: "pencil")
}.overlay(VStack {
if linkActive {
NavigationLink(destination: Text("Test"), isActive: $linkActive) {
EmptyView()
}.opacity(0)
}
})
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9435 次 |
最近记录: |