根据条件确定 NavigationLink 是不是处于活动状态

Posted

技术标签:

【中文标题】根据条件确定 NavigationLink 是不是处于活动状态【英文标题】:Determining whether a NavigationLink is active based on a condition根据条件确定 NavigationLink 是否处于活动状态 【发布时间】:2020-11-10 06:52:26 【问题描述】:

我有一个@State 变量,可以检测像这样按下按钮的次数

@State private var count = 0

我有一个导航链接,只有在计数为 5 时才应该处于活动状态。请注意,我希望该链接始终显示,因此我不想将 navigationLink 嵌入到 if 语句中。

这是我尝试过的

NavigationLink(destination: Text("hello world"), isActive: count == 5, label: Text("press"))

我也试过了

NavigationLink(destination: Text("hello world"), isActive: count == 5 ? true : false, label: Text("press"))

我没想到结果会有所不同,但我试了一下。我收到错误“无法将'Bool'类型的值转换为预期的参数类型'Binding'”。

【问题讨论】:

【参考方案1】:

试试下面的

NavigationLink(destination: Text("hello world"), 
   isActive: .constant(count == 5),               // << here !!
   label: Text("press"))

【讨论】:

是的,现在看起来很明显

以上是关于根据条件确定 NavigationLink 是不是处于活动状态的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 的文本块中嵌入 NavigationLink?

(SwiftUI) NavigationLink 不是屏幕的全宽

NavigationLink 不断将我的文本元素对齐到中心而不是领先 SwiftUI

Xcode 13.1 中的 Navigationlink 问题——空白而不是链接?

在 NavigationLink 的嵌套 NavigationView 中列出核心数据对象的正确方法

如何通过 NavigationLink 将 ForEach 数组索引传递到另一个 ForEach 而不会崩溃?