SwiftUI意外自动弹出NavigationLink

5

我有一个简单的用例,其中一个屏幕使用NavigationLink推送另一个屏幕。在iOS 14.5上存在一种奇怪的行为,即被推送的屏幕在刚推出后就被弹出。

代码:

NavigationLink(destination: EmptyView()) { EmptyView()} 

我设法创建了一个示例应用程序,并在其中复现了这个问题。我认为问题的原因是存在@Environment(\.presentationMode),它似乎重新创建了视图并导致推送的视图被弹出。

在Xcode 12 / iOS 14.4中,完全相同的代码可以正常工作。


你是如何启动推送的? - Chris
在SwiftUI中,您必须使用NavigationLink来导航视图。 - Mayur Parmar
当然可以,但你是如何决定/触发推送的呢? - Chris
NavigationLink方法有isActive参数,当它为true时,NavigationLink将被触发。最初它是false。 - Mayur Parmar
1个回答

4

自上周以来,我一直卡在这里。为了修复,我只需将其添加到包含现有NavigationLink的视图中:

NavigationLink(destination: EmptyView()) {
    EmptyView()
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接