【问题标题】:Programmatically push a NavigationLink in iOS16在 iOS16 中以编程方式推送 NavigationLink
【发布时间】:2022-08-11 00:17:04
【问题描述】:

在以前的 iOS 版本中,我以编程方式推送 NavigationLink

NavigationLink(isActive: $searched, destination: { SearchView(originalSearchPhrase: $searchedPhrase) }, label: {})

并在我想要推送时切换 isActive 变量。但是,在 iOS16 中,所有带有 isActive 的 NavigationLinks 都已弃用。还有办法以编程方式推送 NavigationLinks 吗?

标签: swift swiftui


【解决方案1】:

我们只需要将相应的链接值推送到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")

Complete code on GitHub

【讨论】:

    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 2021-12-15
    相关资源
    最近更新 更多