问题标签 [swiftui-navigationlink]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
128 浏览

swiftui - 防止点击时突出显示 VStack 中的 NavigationLink

在 VStack 中使用导航链接时,点击时它会变为半透明(突出显示)。是否有可能防止这种行为?

0 投票
2 回答
107 浏览

swift - SwiftUI - 如何根据列表为文本设置不同的值

例如,现在,当我在列表中点击“土豆”时,视图中的文本将显示“土豆”。但我希望列出的每个文本都有不同的文本,而不是同一个词。

如何使用 SwiftUI 做到这一点?

谢谢你。

0 投票
1 回答
237 浏览

swiftui-navigationlink - SwiftUI 双重嵌套 NavigationLink 视图不响应更改的 ObservedObject

我创建了三个视图。我按顺序将 ObservedObject 状态传递给每个视图。当我更改最后一个视图 (AnotherView2) 中的状态时,我的应用程序没有显示“是的,它已完成!”的文本视图。但是,如果我在 AnotherView 中取消注释此行

self.userDefaultsManager.setupComplete = true

它通过显示文本按我预期的方式工作。

有人可以帮助我了解我的代码或 API 有什么问题,它不能用于以这种方式显示视图的双嵌套调用吗?

编辑:使用 XCode 11.3 & iOS 13.3.1

0 投票
1 回答
555 浏览

model - 在 SwiftUI 中关闭模型表后如何推送新屏幕?

我必须像实现一样在屏幕中创建一个登录屏幕,用户可以输入手机号码并单击登录按钮模型表将在 OTP 验证表必须关闭并在仪表板上导航后打开以进行顶部验证。

在这里,我在该 contentView 上创建了一个内容视图,单击打开模型按钮,模型表(sheetView)将在单击完成按钮表后打开,然后屏幕从ContentView导航到DashboardView

// 内容视图

//sheetView:-modalPresentationStyle以工作表的形式呈现。

//仪表板:-关闭模型(工作表)屏幕后应在仪表板上导航。

有什么线索吗?

0 投票
1 回答
63 浏览

swiftui - 当我尝试使用导航链接删除列表视图中的一行时,索引不足

当我尝试删除任何行时,应用程序将崩溃并且我得到这个“致命错误:索引超出范围”。如果我在我的代码中删除 NavigationLink 部分,则可以删除任何行。我该如何解决这个问题?谢谢你。

0 投票
0 回答
242 浏览

ios - NavigationLink 在选择行之前在列表中创建多个目的地实例

我有一个联系人列表,单击时我想导航到详细信息视图。这是我的清单视图代码:

这是我在网上找到的,并且有效。但是我发现目标的视图和视图模型在列表被填充后就被初始化了,甚至没有选择。这是正确的还是我没有正确理解某些东西?

0 投票
1 回答
407 浏览

swift - SwiftUI - 当我将数据从视图传输到另一个视图时,列表不会更新

我正在尝试将数据从 FirstView 发送到名为 myMoodList 的结构中的列表。我的问题是一旦数据发送到 myMoodList,它就不会添加到列表中。所以我在导航栏中放置了虚拟按钮,这样我就可以添加包含数据的行。

这是我的代码,

所以 currentMood 是 String 并且它的值是“Happy”。

这是我的主要观点。

所以 MyMoodList 结构有 navigationBarButton,我放它只是为了确保数据已成功从第一个视图发送到 MyMoodList。但我想要的是一旦用户从 firstView 移动到 MyMoodList,它会自动添加到列表中。我不想使用该按钮,因此可以将其添加到列表中。

我不知道列表是否不会自动更新,或者列表在将项目添加到类 MoodViewModel 中的 moodArray 之前先加载。

谢谢你。

更新:

在我的 FirstView 我有

在我添加的 MyMoodList 类上@State var addNewPost: Bool

0 投票
1 回答
438 浏览

swiftui - 如何使用 SwiftUI 更改主题颜色?

我需要将所有navigationlinks 的标题更改为除蓝色以外的其他颜色,例如自定义绿色。不知道从哪里开始。

例子

0 投票
1 回答
190 浏览

swiftui - SwiftUI 错误:“View”.Type ' 不能转换为 '(String, String, String, Glyph) -> "View'

第一个 SwiftUI 项目 :) 我有一个来自顶层视图列表的 NavLink,它调用了一个详细视图。它一直在工作,直到我需要将 Struct 的 @State var 添加到详细信息视图中,现在调用参数列表与编译器期望的不匹配:

详细视图开始:

字形结构定义为:

错误在顶级 ContentView navLink 目标中:

我在调用列表中尝试了几种变体,并尝试删除 SelectGlyph 中的 @State 包装器,但均无效。任何帮助,将不胜感激!如果我知道如何在视图中指定局部变量而不是调用中的必需参数,那就太好了(我确定我在这里遗漏了一些东西!)

作为对 Asperi 的响应,我尝试了 SelectGlyph 视图的显式初始化程序,但仍然在同一个地方遇到同样的错误:

SelectGlyph 视图现在修改为具有显式 init()。我尝试在 init() 中将 selectedGlyph 指定为 _selectedGlyph 和 self._selectedGlyph

0 投票
1 回答
703 浏览

ios - 如何在出现时以编程方式触发 NavigationLink

我试图在出现时以编程方式触发 NavigationLink,但在所有情况下,目标视图都会在出现后立即弹出(iOS 13.3.1, Xcode 11.3.1)

设置如下:ContentView 有一个到 DetailView1 的 NavigationLink,而后者又具有一个到 DetailView2 的 NavigationLink。我希望 DetailView1 中的 NavigationLink 在 DetailView1 首次加载时自动触发(在我的实际代码中,这将基于一个条件,但这在这里无关紧要)。

这是基本代码(没有自动行为):

我的第一种方法是isActive在 DetailView1 中的声明中设置为 true:

正如预期的那样,NavigationLink 被触发,但 DetailView2 出现后立即弹出。

我也(或者)尝试isActive在内部设置为 true.onAppear

然而结果是一样的。

实际起作用的是将设置延迟isActive至少 0.75 秒,我认为这不是可接受的解决方法。

这是一个错误还是有办法达到预期的效果?