Swift 导航链接问题

Posted

技术标签:

【中文标题】Swift 导航链接问题【英文标题】:Swift Navigation Link problems 【发布时间】:2020-09-25 08:18:32 【问题描述】:

我在 Swift 和 ios 14 中遇到了 NavigationLink 的问题。这是一个已知问题,但是我看到的问题解决者还不够。我发现当一个带有NavigationLink 的按钮被提前初始化时,它可以工作,当你进入页面时,你有“返回”按钮。但是,当导航链接在中间时,进入页面后无法返回,必须关闭应用才能再次进入主屏幕。

这是我正在使用的代码:

HStack 
    Button(action: 
        if let url = URL(string: "I blacked this out to make no advert here") 
            UIApplication.shared.open(url)
        
    )
        Text("Rate App").foregroundColor(.gray)
    .modifier(navigationButtonViewStyle())
    
    Spacer()
    // this navigation link works fine
    NavigationLink(destination: HelpView()) 
        Text("FAQ").foregroundColor(.gray)
    .modifier(navigationButtonViewStyle())
.padding(.horizontal, 20)

VStack 
    Text("λSET")
    .font(.largeTitle)
    .fontWeight(.heavy)
    .bold()
    .padding(.top, 50)
    .onAppear(perform: prepareHaptics)
    .animation(.linear)
    
    Text("λudio System Engineer Tools")
    .fontWeight(.light)
    .animation(.linear(duration: 0.5))
    
    HStack 
        
        Spacer()
        
        // this navigation link is not showing the go back button when pressed and directed to the new screen
        NavigationLink(destination: AboutView()) 
            Text("About λSET")
            .fontWeight(.heavy)
            .bold()
        
        
        
        Spacer()
        
    .modifier(calcTitleViewStyle())
    .padding(.top, 20)
    .padding(.bottom, 60)

我不确定问题是什么,但很好奇这可能是什么。我正在研究一种解决方法,但我很想从根本上解决问题。

谢谢!

【问题讨论】:

【参考方案1】:

通过将 .NavigationBar 显式设置为 true 以强制 swift 加载它,我自己修复了它。这在其他页面中不需要,但我现在正在确保 IOS14 接受它,因为那里已经更改了一些内容。

【讨论】:

以上是关于Swift 导航链接问题的主要内容,如果未能解决你的问题,请参考以下文章

在 swift 游乐场的时间线视图中添加链接

SwiftUI 如何创建一个将项目添加到包含导航链接的列表的按钮

带有嵌套导航视图的 Swift UI

Swift:使用按钮导航到新的 ViewController

全局更改 UI 颜色(Swift)

ViewController 总是加载相同的链接