问题标签 [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 投票
1 回答
280 浏览

ios - Pop 和 Push 的导航在 SwiftUI 中不起作用?

我有两个屏幕。第一个屏幕有以下代码

NavigationLink导航到按预期工作的第二个屏幕。在第二个屏幕

第二个屏幕中的按钮弹出到按预期工作的第一个屏幕,但是一旦我回到第一个屏幕并单击 NavigationLink,它就不会移动到第二个屏幕。

0 投票
1 回答
1931 浏览

swiftui-navigationlink - SwiftUI Nested NavigationViews 显示多个导航栏

我的 ContentView 包括一个 NavigationView,我通过 NavigationLink 向下钻取到显示列表的 OverviewView,然后从那里通过 NavigationLink 到 DetailView。现在我想点击 DetailView 中的文本并调出另一个视图,但是当我现在尝试向该对象添加 NavigationLink 时,我收到一个错误,即 NavigationLink 需要嵌入到 NavigationView 中,因此我将代码更改为

但现在由于另一个 NavigationView 中有一个 NavigationView,我最终在顶部有 2 个导航栏。

2个导航栏

有没有办法使用 NavigationLink 而不将其嵌入另一个 NaviagationView 或通过不使用 NavigationLink 和类似 .sheet 的东西导航到另一个视图(我不想将新视图显示为模态!)。

下面是完整的测试示例代码:

0 投票
0 回答
66 浏览

swiftui - 如何将 NavigationLink 实现为 Button(action: { })

我有一个问题:我不知道如何在 Button 中实现 NavigationLink -> 我想为购物应用程序创建一个名为“Order now”的 Button。根据用户选择的付款方式,我想在用户单击按钮后显示不同的视图。

提前感谢您的帮助!

0 投票
1 回答
930 浏览

xcode - 点击列表中的文本并推送到其他屏幕(视图)swiftUI

在我看来,我有一个列表,其中最后一项是切换按钮和水平堆栈中的文本。我想在文本的某些部分添加操作(此文本类似于条款和隐私政策)。但是在添加 NavigationLink 以移动到其他屏幕时,它会在文本和指示符之间添加具有大空间的披露指示符,并且单击正在整个行上工作。swiftUI中还有其他选项可以推送到其他屏幕吗?我目前正在使用 Xcode 11.1

以下是使用 NavigationLink 显示的屏幕截图:

在此处输入图像描述

0 投票
1 回答
93 浏览

swiftui - 按钮不改变 SwiftUI 中的视图

所以在我的 ContentView.swift 中,我有以下代码:

我得到一个预览: Preview of button with NavigationLink

如果您看向我的 LeftClick 按钮,我希望它带我到不同的视图,但不知道如何。我有一个 NavigationLink,我的目的地是不同的视图(Playing.swift,如果需要知道,我使用 Playing() 调用它)

显然我做错了什么,我 [[希望]] 确定它来自按钮,而不是来自其他视图:

提前致谢。

0 投票
1 回答
590 浏览

ios - 在 navigationBarTitle 中添加视图 - SwiftUI

我可以使用 .navigationBarTitle(Text((msgDetails.name))) 添加标题,但我想在导航栏中的标题下添加副标题。看起来标题不会接受视图,它只接受文本。我在标题中尝试了 \n 但它不起作用。有什么办法可以在导航栏中添加字幕。我使用前导和尾随在导航栏中添加左右按钮。我想显示标题和副标题以及这个左右按钮

导航栏

0 投票
1 回答
97 浏览

swiftui - 如何退出循环并来到 ContentView swiftUI

入职屏幕、注册和密码恢复我正在处理这个链接项目。登录后如何进入ContentView?如何跳出循环进入ContentView?如果你能帮忙我会很高兴..

0 投票
1 回答
4539 浏览

swiftui-navigationlink - SwiftUI NavigationView,如果 NavigationLink 在 NavigationBarItem 内,则返回

由于 iOS 13.4 和 Xcode 11.4 存在一些问题,presentationMode.wrappedValue.dismiss()我正在寻找另一种以编程方式返回的方法。我从 MScottWaller 找到了这个解决方案:

iOS SwiftUI:以编程方式弹出或关闭视图

不幸的是,就我而言,它不起作用:

如果 NavigationLink 位于 navigationBarItem 内,我将无法从 DetailView 返回。我不知道这是否是一个错误或者还有其他原因导致 NavigationLink 在 navigationBarItem 内不能以相同的方式工作。

作为一种解决方法,我在视图内使用带有空 NavigationLink 的这个变体。它有效,但我不喜欢这样:

任何想法为什么 NavigationLink 不能在 navigationBarItem 内正确工作?

0 投票
1 回答
67 浏览

ios - 从数组中的 .sheet(isPresented) 创建自定义数据

我试图让用户单击图像并将他们带到不同的视图,在该视图中它具有来自该视图的数组中的相同图像和文本,并且每次他们单击 scollview 中的图像时,视图都会弹出该信息。它将从数组中获取数据并在下一个视图中显示每个切换的正确项目。

0 投票
2 回答
1899 浏览

memory-leaks - SwiftUI NavigationLink 内存泄漏

我对 SwiftUI 的 NavigationView 堆栈中的内存管理如何工作有疑问。我有一个视图,其中我声明了 NavigationView 和 NavigationLink,NavigationLink 的目标参数内部是我的 TestView。导航效果很好,但是当我从堆栈中弹出视图(fe 向上后退按钮)时,控制台中不会打印 deinit,并且仍然可以在内存图中找到 TestViewModel。当不再需要我的 TestViewModel 时,如何取消它的初始化?

更新 添加了内存图屏幕截图,我已经忘记了。

内存图截图底部

内存图截图顶部

更新

在导航工作的真实设备上进行了测试。看起来,视图模型在弹出视图时没有取消初始化,而是在再次推送时再次初始化。但是问题仍然存在,有没有办法在导航堆栈中弹出视图时取消初始化视图模型?

此外,当我向堆栈添加另一个视图时,行为会发生一些变化。现在 second 的视图视图模型将导致泄漏,但 first 将按预期取消初始化。