问题标签 [swiftui-tabview]

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

ios - SwiftUI TabView 似乎不尊重@SceneStorage

我有一个应用程序可以根据其 sizeClass 在 TabView 和侧边栏视图之间切换。适用的代码如下:

这是我的问题:

当应用程序以常规宽度启动时,会显示侧边栏并显示LastTab选择的内容。如果我用另一个应用程序拆分屏幕,迫使我的应用程序进入紧凑宽度,那么窗口内容将切换到第一个选项卡的内容。我希望它停留在最后选择的选项卡上。

我在 TabView 行上放了一个断点$lastTab并显示了正确的值,但 TabView 似乎并不尊重它。

0 投票
1 回答
708 浏览

swiftui - 动态设置 SwiftUI NavigationBarItems?

如何动态更改 SwiftUI 导航栏项?

我在 NavigationView 中有一个 TabView,我希望导航栏项根据所选的选项卡进行更改。但是,我很难确定如何使用 .onAppear() 来更改它,假设这甚至是您应该做的。

我的代码目前布局如下:

0 投票
2 回答
129 浏览

ios - 使用 NavigationLink 打开新视图时如何隐藏 TabView?

假设我们有一个 SwiftUI 视图,其中包含

现在,假设每个元素都FirstView包含一个NavigationView可滚动的内容NavigationLink。我怎样才能使它在NavigationLink触发目标时(即打开子视图),它接管整个页面(全屏)并隐藏TabView

理想情况下,我想支持 iOS 13+。

我曾尝试遵循Hacking with Swift的指导,但无济于事。

我还遵循了NavigationLink 视图中的 SwiftUI Hide TabView bar中的建议,但发现顶级解决方案的性能并不高,因此我希望能够实现一个没有延迟出现的解决方案。

0 投票
1 回答
132 浏览

swiftui - SwiftUI:如果在 TabView 内与其他视图交互时,列表行会突出显示

如果 a与 aList中的其他视图一起放置,VStack其中定义了 a 中的一个页面TabViewwith PageTabViewStyle,与其他视图交互(点击、长按)会导致所有(可见)行List被突出显示。

以下视图演示了这种行为:点击或长按按钮或紫色区域(Color视图)将导致列表中的行突出显示(Xcode 12.1& iOS 14.1)。

我认为这是一个错误并且已经提交了反馈,但想知道是否有解决方法,而它没有修复。

0 投票
3 回答
2351 浏览

swift - SwiftUI TabView:如何检测标签上的点击?

每次点击选项卡时,我都想运行一个函数。

当我点击一个新选项卡时,在下面的代码中(通过使用onTapGesturemyFunction被调用,但选项卡视图没有改变。

我怎样才能得到这两个东西:

  • tabview 正常显示
  • 我的函数被调用
0 投票
1 回答
102 浏览

swift - 更改选项卡时清除视图数据 SwiftUI

我在其中一个选项卡中显示每日步数信息。不幸的是,当我再次选择步骤选项卡时,它会在前一个数据下方添加一个相同的数据。

在此处输入图像描述

我试图通过切换布尔值来解决它。但这也无济于事。

阶梯模型

健康商店文件

根据我的问题,这些都是相关文件。提前致谢。

0 投票
0 回答
416 浏览

swift - 为什么在 TabView 中多次调用 makeUIView?

我的应用程序有一个 TabView (PageTabViewStyle),每个选项卡内都有一个 UIViewRepresentable。我已经简化了代码以生成下面的最小可重现示例。问题是 makeUIView 在出现时被多次调用,在浏览页面时又被多次调用。

仅供参考,这在 iOS 14.0 中不是问题,但在 iOS 14.2 中正在发生。我目前正在使用 Xcode 12.2 Release Candidate。

当屏幕出现时,控制台打印:

当我向右滑动一次时,它会打印:

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

swiftui - SwiftUI 中的更多 TabView

在 SwiftUI 中,我有一个包含 6 个以上选项卡的 TabView。当我尝试导航到更多选项卡时,更多选项卡将不起作用。我将如何使更多选项卡工作?我现在可以使用所有其他选项卡进行导航,但无法使用更多选项卡进行导航。

谢谢。

下面是创建 TabView 的代码:

}

0 投票
0 回答
250 浏览

ios - SwiftUI - 将应用程序移动到后台然后恢复到前台后,TabView 失去颜色

我在 iOS 14.2 上运行的 MacOS 11.01 上的 Xcode 12.2 中有一个 SwiftUI 5.3 多平台应用程序,该应用程序使用自定义颜色资产进行亮/暗模式。启动应用程序时,它可以在明暗模式之间完美切换。所有的颜色都会相应地改变。

但是,在暗模式下,如果我将应用程序移到后台并将另一个应用程序带到前台,然后返回到我的应用程序(从后台恢复),TabView 颜色会完全消失。顶部的 NavigationView 正常运行,正如预期的那样。如果我随后切换到灯光模式,则会为 TabView 显示正确的灯光模式颜色。切换回暗模式会恢复正确的暗模式 TabView 颜色。如果我再次将应用程序移到后台,查看另一个应用程序,然后将我的应用程序带回前台,TabView 颜色再次被洗掉。

我已经尝试过无数次使用initand调用颜色的方法.onAppear,但没有任何东西可以纠正这种行为。

有什么想法吗?感谢您花时间帮我解决这个问题。

编辑以增加清晰度。此处添加代码: