SwiftUI 无法使用 navigationLink 来回导航

Posted

技术标签:

【中文标题】SwiftUI 无法使用 navigationLink 来回导航【英文标题】:SwiftUI unable to navigate back and forth with 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")
    

【问题讨论】:

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

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

【讨论】:

以上是关于SwiftUI 无法使用 navigationLink 来回导航的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 如何基于@ObservedObject 为每个列表视图项创建编辑视图

SwiftUI:无法使用 UIActivityViewController 共享图像

SwiftUI 无法使用 navigationLink 来回导航

无法使用 SwiftUI 创建系统映像

navigater导航

无法使用 SwiftUI 推断复杂的闭包返回类型