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

swift - SwiftUI:如何更改 NavigationView.toolbar 背景颜色

关于如何将特定背景颜色应用于底部工具栏的任何想法?

0 投票
1 回答
403 浏览

ios - SwiftUI NavigationLink:如何在显示目标视图之前调用函数

我想点击一个项目之后,显示目标视图之前调用一个函数。

下面的代码似乎不起作用:myFunction被调用,但未显示目标视图。

看起来onTapGesture覆盖了NavigationLink目的地。

单击列表项时,如何同时拥有两者?

  • 函数被调用
  • 显示目标视图
0 投票
1 回答
999 浏览

swiftui - SwiftUI NavigationView 背景颜色

我有一个ScrollView在 a 中显示项目列表VStack而不是使用 a List。我想复制.large导航栏标题的行为,其中背景颜色使用.systemGroupedBackground

这是List我想要的行为。的背景Summary是​​透明的。

在此处输入图像描述

这是我在使用ScrollView+时得到的行为VStack。注意大导航栏的白色背景。

在此处输入图像描述

重现两者的代码是

0 投票
2 回答
1250 浏览

ios - SwiftUI - 如何在纵向模式下删除使用 SidebarListStyle 设置样式的列表后面的白色背景

SidebarListStyleNavigationView.

问题是列表中的每一行后面都有一个白色矩形,但仅限于纵向模式。风景很好。

我不想要那个白色背景,有人知道如何删除它吗?此外,在启动应用程序时,它似乎出现了故障——起初它很好,然后它添加了白色背景。

奇怪的是,如果我添加.navigationViewStyle(StackNavigationViewStyle())到 中NavigationView,白色背景会消失并且可以正常启动。

左:启动方式,右:启动后的样子

↑ 这就是我想要的样子。

但是,现在横向模式仅限于全角列表,我也不想要。

编辑:@Omid的回答

我添加了背景颜色以匹配默认颜色:

但是启动故障仍然存在。

编辑:@pawello2222的回答

工作正常,只是旋转时奇怪的过渡。

0 投票
2 回答
478 浏览

swift - SwiftUI - 导航视图打开后退按钮和半灰屏/奇怪的行为

我正在尝试将导航视图添加到我的应用程序,但这会导致问题。我的主 UI 是一个可无限滑动的页面轮播。它最初看起来像这样:没有导航视图的可滑动页面

然后当我将它包装在导航视图中时,它会像这样打开,带有一个后退按钮,没有别的:在此处输入图像描述

当我点击后退按钮时,它看起来像这样:在此处输入图像描述

左侧像原始 UI 一样可滑动,但是当我触摸右侧灰色的一侧时,它会将我带回带有返回按钮的空白页面。

知道可能是什么原因造成的吗?我通过将每个页面放在 ZStack 中并使用偏移量/相对位置来实现无限轮播。我参考了本教程: https ://www.youtube.com/watch?v=fB5MzDD1PZI

我不能使用 NavigationView 吗?是否可以采用另一种方法来创建自己的顶部 NavBar 并在没有 NavigationBar/NavigationLink 的情况下导航到单独的视图?

任何帮助表示赞赏,请随时提出问题等。谢谢!

0 投票
0 回答
252 浏览

ios - SwiftUI:带有偏移的按钮在 ScrollView 中不起作用

我正在尝试使此配置文件按钮在 ScrollView 内工作,当点击该按钮时,应该会出现一个模式视图。但由于某种原因,当我向按钮添加一些偏移量以使其与导航标题内联时,按钮停止工作。

有谁知道解决这个问题?

这是我的代码:

SwiftUI 视图

0 投票
1 回答
165 浏览

swift - 为什么在 SwiftUI 的 navigationTitle 中使用表情符号时,NavigationView 会内联显示?

我是 SwiftUI 的新手,我遇到了一种让我发疯的奇怪行为。我以下面的代码为例:

当我运行这个应用程序(iOS 14,XCode 12.2)并点击表情符号视图(第二个导航链接),然后点击导航栏中的“<返回”按钮,内联标题样式显示在导航栏中(image1)而不是预期的(图2)。任何线索为什么?我做错什么了吗?这是一个 SwiftUI 错误吗?唯一的区别是标题中的表情符号。

编辑:正如 Luffy 所指出的,如果 ContentView 中的 navigationTitle 也包含表情符号,则效果很好。可能和标题的高度有关?这是一个 SwiftUI 错误的更多要点。

谢谢!!

0 投票
1 回答
179 浏览

swiftui - SwiftUI - TabView 灯光模式 UIColor 出现在预览中,而不是在 Sim 或设备中

我在 MacOS 11.01 上使用 Swift 5.3 并为 iOS 14.2 创建了一个新的“多平台”应用程序。我为亮/暗模式创建了自定义颜色资源,但无法让亮模式背景颜色显示在我的 TabView 上。TabView 暗模式背景颜色看起来很好。

浅色模式的背景颜色在 Xcode Preview 中看起来很完美,但是当我在 Sim 或我的设备上运行应用程序时,标签栏背景颜色在浅色模式下是清晰的,但在深色模式下显示正确的颜色。

I use the same color assets for coloring my NavigationView and both the light and dark mode colors appear correctly when the corresponding modes are selected.

最新的 SwiftUI 5.3 和颜色资产在这里有什么明显的遗漏吗?

.onAppear在 TabView 中使用以下代码

UITabBar.appearance().barTintColor = UIColor(named: "barBackground")

请注意,“barBackground”是我创建的自定义颜色集,用于向 NavigationView 和 TabView 添加亮/暗模式背景颜色。

如果不清楚,很高兴提供更多信息。谢谢!

0 投票
0 回答
692 浏览

swiftui - SwiftUI NavigationLink isActive 不适用于动态列表

使用isActive动态NavigationLinks 的 bool 数据结构来启用程序化弹回是行不通的。在 中点击Pop BackDestination应该将视图弹出回 root DynamicList,但它不起作用。

0 投票
1 回答
496 浏览

swiftui - 直接设置选择而不是从 viewModel 设置选择时,SwiftUI NavigationLink 行为不同

我一直在使用 SwiftUI 并遇到了意外的行为。

我有视图 A 和视图 B 和视图 C。视图 C 具有从视图 A 更改 AppState 的 EnviromentObject

视图 B 具有带有选择的 ViewModel

如果我从 ViewModel 调用函数来更改选择,则视图 C 会显示几秒钟,然后它会自动弹回视图 B

如果我直接从视图 B(而不是视图模型)更改选择,一切都会按预期工作。另外,如果我注释掉Dissapear,它也可以工作。但是,当屏幕消失时我需要更改 environmentObject 这是 View B 和 ViewModel

工厂模式没有解决问题: