swiftui foreach Navigationlink 立即弹出

Posted

技术标签:

【中文标题】swiftui foreach Navigationlink 立即弹出【英文标题】:swiftui foreach Navigation Link pop immediatly 【发布时间】:2019-10-30 11:48:55 【问题描述】:

我的应用程序中的新 NavigationLink 出现问题,当我单击按钮时,更改页面但立即返回。我哪里错了?

NavigationLink(destination: TeamsModuleView(), tag: t.id, selection: self.$selection) 
    Button(action:  
        self.selection = t.id //Is dynamic
        self.settings.fixtureId = t.fixtureId
        self.settings.teamHomeId = t.teams.teamHomeId
        self.settings.teamAwayId = t.teams.teamAwayId
        self.settings.teamHome = t.teams.teamHome
        self.settings.teamAway = t.teams.teamAway
    ) 
        HStack 
            Text("Go")
                .foregroundColor(Color.white)
        
        .frame(minWidth: 0, maxWidth: .infinity)
        .padding(20)
        .background(Color.init(red: 0.80, green: 0.16, blue: 0.24))
        .cornerRadius(7)
    
    .padding([.leading, .trailing], 30)

【问题讨论】:

【参考方案1】:

NavigationLink 不应该包含按钮,它一个按钮。

NavigationLinks 必须包含目的地和某种标题。它们可以包含一个 bool 绑定(如果处于活动状态)。但没有按钮。

您的按钮操作所做的一切都需要以其他方式完成。

更多代码将有助于确定您想要实现的目标,以便我们可以帮助您编写代码。

【讨论】:

您好 Lilfaen,感谢您的回复,好的,所以当我单击 NavigationLink 时可以调用函数吗?现在我已经在新视图中通过构造函数传递了变量,现在可以正常工作了。 @StefanoToppi 如果您可以分享 - 至少 - TeamModuleView 的代码,那就太好了。没有任何代码我真的能够帮助你,因为我真的不知道你需要什么。

以上是关于swiftui foreach Navigationlink 立即弹出的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 中的两个 ForEach

SwiftUI 中的 ForEach

在 SwiftUI 中,如何在 LinkedList 中“Foreach”节点?

SwiftUI:删除 ForEach 中的最后一行

SwiftUI:删除 ForEach 中的最后一行

SwiftUI,IF 在 ForEach 循环内显示不同的文本