gpt4 book ai didi

swift - .searchable 中的 NavigationLink 不起作用

转载 作者:行者123 更新时间:2023-12-04 14:56:20 26 4
gpt4 key购买 nike

我了解它的新功能,但这似乎是不存在的非常基本的功能。实现 .searchable 时在新的 iOS 15 中,NavigationLink 似乎根本不起作用。
理想情况下,可搜索将生成一个带有 ForEach 的过滤列表,对于每个项目,导航链接可以根据您的选择将您带到另一个 View 。 ForEach 和列表有效且看起来很漂亮,它不会带您去任何地方。
看WWDC21,他们谈了很多关于.searchable ,但很少给出演示/示例..
这是一个简单的例子,没有 ForEach 循环,这表明它根本不起作用..我错过了什么吗?
任何见解表示赞赏:

import SwiftUI

struct ContentView: View {

@State private var term = ""

var body: some View {
NavigationView {
Text("Hello, world!")
.padding()
}
.searchable(text: $term) {
NavigationLink(destination: SecondView()) {
Text("Go to second view")
}
}
}
}

struct SecondView: View {
var body: some View {
Text("Goodbye!")
.padding()
}
}

最佳答案

NavigationLink必须始终在里面 NavigationView ,不管怎样。如果你想把它放在外面,比如里面.searchable , 你应该使用 programmatic navigation with isActive .

struct ContentView: View {

@State private var term = ""
@State private var isPresenting = false

var body: some View {
NavigationView {

/// NavigationView must only contain 1 view
VStack {
Text("Hello, world!")
.padding()

/// invisible NavigationLink
NavigationLink(destination: SecondView(), isActive: $isPresenting) { EmptyView()}
}
}
.searchable(text: $term) {
Button { isPresenting = true } label: {
Text("Go to second view")
}
}
}
}

struct SecondView: View {
var body: some View {
Text("Goodbye!")
.padding()
}
}
结果:
Working navigation link that only appears when search bar tapped

关于swift - .searchable 中的 NavigationLink 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67923446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com