问题标签 [swiftui-navigationview]

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 回答
250 浏览

swiftui - 使用 NavigationLink 时不重新加载选项卡项的 SwiftUI 问题

我在 TabView 中使用导航视图,问题是如果我在选项卡 A 上使用 NavigationView 打开其他视图,当从选项卡 A 更改为 B 时,过了一会儿我回到选项卡 AI 不会重新加载选项卡 A从头开始,但它显示使用 NavitagionLink 打开的最后一个视图。问题是在每个视图中我都从数据库中获取数据,因此如果显示一个空视图。

我的 ContentView 如下所示:

如果我打开 SearchView()

如果在 SearchView 中,我在 View_2() 上并且我打开另一个选项卡,当我返回选项卡 SearchView 时,它不会显示 SearchView(),但它仍然在 View_2() 上,并带有导航栏中的后退按钮。

我怎样才能显示 SearchView() 而不是保持 NavigationLink 的状态?

0 投票
1 回答
821 浏览

swiftui - Swiftui,按钮网格视图

我在这里检查了几个关于网格视图的问题,但我的问题有点不同,我想为按钮创建一个网格视图,以便在按下每个按钮时导航到不同的视图,所以它看起来像这样的图像: 这是网格按钮看法

所以我在这里写了这段代码,但看起来我并没有很成功地得到我想要的东西,有没有更好的想法来实现这个设计作为网格视图?

0 投票
0 回答
321 浏览

swift - 如何从 SwiftUI 推送到现有的 UINavigationController 堆栈?

我们正在推动一个SwiftUI嵌入在这样UIHostingViewControllerUIKit土地中的视图:

首先制作UIViewController

然后将其压入UINavigationView堆栈:

这让我们进入SwiftUI's 环境。但是,如果我们的环境有它自己的带有andSwiftUI的导航堆栈,那么原始的后退按钮只能导航回原始呈现。NavigationViewNavigationLinknavigationBarUIViewController

有没有办法将SwiftUI嵌入NavigationView到现有堆栈中的视图推送到现有UINavigationController堆栈中?

到目前为止,我们唯一的想法是UIHostingViewController为每个新屏幕创建一个新SwiftUI屏幕,并通过某种委托方法将其推送到堆栈上。

我们正在寻找的是这样的:

中的后退<箭头navigationBar将按预期运行。

如果我们可以进一步澄清,请告诉我们!

0 投票
0 回答
202 浏览

swiftui - 带有 NavigationView/NavigationLink 延迟的程序化导航跳回

我创建了一个可以重现我的问题的简单展示;我正在做的是从初始视图 => View1 => View2 导航。

从初始到 View1 的导航是通过按钮点击发生的,这里没有什么特别的。

我的 View1 如下所示:

如果我将延迟包含在 中onAppear,它会按预期工作;延迟之后,我被导航到View2并留在那里。

但是,如果我删除延迟(或将其设置为例如 300 毫秒),我会被导航到View2,但会立即被导航回来。我不明白这里发生了什么;为什么我$viewModel.foo设置为 false 后设置为true

0 投票
1 回答
284 浏览

swift - 在 SwiftUI 中以编程方式移动 NavigationView 的最佳实践是什么

我正在开发一个需要在用户上次使用的视图上打开的应用程序,即使该应用程序被用户或 ios 完全杀死。

结果,我保留了 UserDefaults 中使用的最后一个视图,并自动将用户移动到堆栈中的每个视图,直到他们到达目的地。

每个视图上的代码如下:

有没有更好/标准的方法来实现这一目标?这在 iOS 14.* 上运行合理。* 但在 iOS 13.* 上运行不佳。* 在 iOS 13.* 上,重定向通常不会到达其目标页面,并且似乎没有创建堆栈中的先前视图。按回等会导致崩溃。

任何帮助/建议将不胜感激。

0 投票
1 回答
232 浏览

ios - 你如何在swiftUI中禁用navigationBaritems

我有一个 .navigationBarItems 按钮,我想根据我的应用程序在做什么来启用/禁用它,但我一生都无法弄清楚该怎么做?!

我的视图通过 NavigationView 被拉到我的主应用程序视图中,所以我知道栏项目正在正确显示等等。在我看来,在导航到它时会被拉进来,我在堆栈底部有这段代码:

我希望能够切换尾随的“结束日”按钮以启用/禁用,可能基于一些 Bool 状态变量?例如,当用户进入应用程序的某个模式时,它被启用,当他们退出该模式时,它被禁用。我的应用程序是一个锻炼应用程序,所以当他们锻炼时我希望它被启用,而当他们完成锻炼时它被禁用(这是默认设置)。

任何帮助将不胜感激!谢谢!!

0 投票
1 回答
130 浏览

swiftui - swiftUI - 强制屏幕到横向后无法关闭模式屏幕

我打开一个完整的模态视图

在 playerView .onApper 中,我使用以下代码强制屏幕进入横向模式:

并且当它尝试关闭视图或将 isPresentedPlayerView 设置为 false 或通过 presentationMode.wrappedValue.dismiss() 屏幕未关闭时!任何想法???

这是关闭代码:

顺便说一句,此代码适用于 Xcode 12.2 并停止适用于 xcode 12.3/ .4

0 投票
1 回答
57 浏览

swiftui - 如何在 iPad 上显示与 iPhone 相同的视图而不是拆分视图?

我希望 iPad 上的视图与 iPhone 上的视图相同。

目前它看起来像这样:

在此处输入图像描述

0 投票
1 回答
39 浏览

swift - List 中的 ForEach 停止 DestinationView 中的更新传播

我认为从这个虚拟示例中非常清楚:如果您删除ForEach代码行,神奇地,传播将流动并且时钟将滴答作响,否则一旦出现详细视图,它将冻结。

0 投票
1 回答
25 浏览

swift - 列表未在 DestinationView 中传播更新

一旦详细视图完全呈现,时钟将冻结。

如果你ListScrollView/替换,VStack传播将会流动。