如果堆栈大小> 1,则弹出后 SwiftUI3 导航链接不起作用

Posted

技术标签:

【中文标题】如果堆栈大小> 1,则弹出后 SwiftUI3 导航链接不起作用【英文标题】:SwiftUI3 navigation link doesn't work after pop if stack size > 1 【发布时间】:2021-06-26 17:41:40 【问题描述】:

SwiftUI 3 如果堆栈大小 > 1,则弹出后导航链接不起作用

重现步骤:

    启动应用程序 点击列表 #1 中的任意行 点击列表 #2 中的任意行 点击Back 点击列表 #2 中的任意行

结果:没有任何反应,导航链接不起作用 预期结果:我应该再次看到视图控制器 #3。

虽然在 SwiftUI 2 中工作正常。

是否有人能够让嵌套的NavigationLinks 在 Swift UI 3 中工作?我已向 Apple 提交错误报告。

import SwiftUI

@main
struct NavigationTestApp: App 
    var body: some Scene 
        WindowGroup 
            FirstView()
        
    


struct FirstView: View 
    var body: some View 
        NavigationView 
            List 
                ForEach(0..<10)  i in
                    NavigationLink(destination: SecondView()) 
                        Text("Row \(i)")
                            .padding()
                    
                
            
            .navigationTitle(Text("1"))
        
    


struct SecondView: View 
    var body: some View 
        List 
            ForEach(0..<10)  i in
                NavigationLink(destination: ThirdView()) 
                    Text("Child \(i)")
                        .padding()
                
            
        
        .navigationTitle(Text("2"))
    


struct ThirdView: View 
    var body: some View 
        VStack 
            Text("????")
        
        .navigationTitle(Text("3"))
    


【问题讨论】:

这是一个已知问题,请参阅 SwiftUI developer.apple.com/documentation/ios-ipados-release-notes/…下的发行说明@ @loremipsum 谢谢 【参考方案1】:

正如@loremipsum 所说,这是一个已知问题

https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-15-beta-release-notes

SwiftUI 已知问题 从导航堆栈中的第三个屏幕弹出后,您无法推送到第三个屏幕。 (79076444)

【讨论】:

以上是关于如果堆栈大小> 1,则弹出后 SwiftUI3 导航链接不起作用的主要内容,如果未能解决你的问题,请参考以下文章

做一个问题,如果输入的答案正确则弹出正确,错误弹出错误

做一个问题,如果输入的答案正确则弹出正确,错误弹出错误

jQuery - 选中复选框则弹出提示框

Modal框弹出后,2s自动消失

WebDriver 2.0:如果 IE (IE8) 的实例已经存在,则弹出窗口的会话过期错误

SwiftUI - 如何在 SwiftUI 中弹出到特定视图?