相关疑难解决方法(0)

NavigationStack 不受环境对象更改的影响

我尝试使用 @EnvironmentObject 使用简单的包装器 ObservableObject 将 @Published 导航路径传递到 SwiftUI NavigationStack 中,并且代码构建没有问题,但使用 @EnvironmentObject 没有任何效果。这是一个仍然存在问题的简化示例:

import SwiftUI

class NavigationCoordinator: ObservableObject {
    @Published var path = NavigationPath()

    func popToRoot() {
        path.removeLast(path.count)
    }
}

struct ContentView: View {
    @StateObject var navigationCoordinator = NavigationCoordinator()

    var body: some View {
        NavigationStack(path: $navigationCoordinator.path, root: {
            FirstView()
        })
            .environmentObject(navigationCoordinator)
    }
}

struct FirstView: View {
    var body: some View {
        VStack {
            NavigationLink(destination: SecondView()) {
                Text("Go To SecondView")
            }
        }
            .navigationTitle(Text("FirstView"))
    }
}

struct SecondView: View {
    var body: …
Run Code Online (Sandbox Code Playgroud)

swiftui swiftui-navigationstack

6
推荐指数
1
解决办法
2745
查看次数

标签 统计

swiftui ×1

swiftui-navigationstack ×1