【问题标题】:SwiftUI unable to navigate back and forth with navigationLinkSwiftUI 无法使用 navigationLink 来回导航
【发布时间】:2020-04-16 10:23:34
【问题描述】:

请注意,在 gif 中,一旦我导航并关闭新视图,我将无法返回!这是 SwiftUI 错误还是滥用 NavigationLinks?


struct ContentView: View {
    var body: some View {
        return NavigationView {
            NavigationLink(destination: FakeView1()) {
                Text("Navigate")
            }
        }
    }
}

struct FakeView1: View {
    var body: some View {
        Text("Hey")
    }
}

【问题讨论】:

  • 看起来这是一个错误。请看this
  • An extensive discussion 来自苹果开发者论坛关于此问题。到目前为止似乎没有解决方法。
  • 我可以假设您将 Xcode 更新到 11.3... 我建议降级到 11.1。
  • 哇,好的,谢谢。我并不着急,所以我会等到它按预期运行。我认为 Apple 已经意识到了这一点......

标签: swiftui combine swiftui-navigationlink


【解决方案1】:

这似乎是 swiftUI 错误。我也遇到了同样的问题,所以我使用了这个解决方法。

struct ContentView: View {

@State var isFakeActive: Bool = false

var body: some View {
    NavigationView {
        NavigationLink(destination: FakeView1(isFakeActive: self.$isFakeActive), isActive: self.$isFakeActive) {
            Text("Navigate")
        }
    }
  }
}

对于你的 FakeView1 类。

struct FakeView1: View {

@Binding var isFakeActive: Bool

var body: some View {
    Text("Hey")
        .navigationBarItems(leading: Button(action: {
            self.isFakeActive = false
        }, label: {
            HStack {
                Image(systemName: "arrow.left")
                Text("Back")
            }
        }))
    }
}

我已经测试过了,它工作正常。

【讨论】:

    【解决方案2】:

    这是模拟器错误。用你的设备试试

    【讨论】:

      猜你喜欢
      • 2020-04-27
      • 2020-12-29
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多