在以前的 iOS 版本中,我以编程方式推送了一个 NavigationLink
NavigationLink(isActive: $searched, destination: { SearchView(originalSearchPhrase: $searchedPhrase) }, label: {})
Run Code Online (Sandbox Code Playgroud)
并在我想要推送 isActive 变量时切换它。但是,在 iOS16 中,所有带有 isActive 的 NavigationLink 均已弃用。还有办法以编程方式推送 NavigationLinks 吗?
我们只需要将相应的链接值推送到NavigationStack路径中即可。
这是主要部分。使用 Xcode 14 / iOS 16 进行测试
enum Dest: Hashable {
case search, details
}
@State private var path: [Dest] = []
var body: some View {
NavigationStack(path: $path) {
Button("Go search") { path.append(.search) } // << here !!
Divider()
NavigationLink(value: Dest.search) {
Text("Search")
}
.navigationDestination(for: Dest.self) {
switch $0 {
case .search:
Text("Search Destination Here")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3437 次 |
| 最近记录: |