问题标签 [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 回答
21 浏览

swiftui - 即使 childView 当前未显示,为什么 TabView 在 childView 上调用 onAppear?

出于某种原因,onAppear 被调用了两次。我创建了一个测试项目并尝试添加另一个解决方案中编写的 ZStack,但它对我不起作用。在这种情况下可以做什么?

如果您切换一次到两次:

0 投票
0 回答
63 浏览

swiftui - 刷新 SwiftUI 父视图是否会导致子视图刷新?

我有TabView2 个选项卡,TabA 和 TabB。两者都NavigationView围绕着一个主视图,每个主视图都有几个NavigationLink子视图。我想支持以下 2 个功能:

  1. 能够导航到 TabA 的任何子项,单击选项卡 B,然后单击返回 TabA,然后查看子视图与我交换选项卡之前完全相同。据我了解,这是为 iOS14 构建时 SwiftUI 的现有功能。

  2. 能够导航到 TabA 的任何子项,单击 Tab B,单击返回 TabA,再次单击 TabA,然后转到 TabA 的根视图。我看到这个功能在 Facebook、Twitter 等其他应用程序中实现。

我的计划是在 TabA 的根视图中添加一个,并通过在用户两次单击同一选项卡时重置它来id使其无效,从而刷新根视图并导致我返回到根视图。我从以下帖子(https://designcode.io/swiftui-handbook-tabbar-to-root-view)中得到了这个想法。但是,我注意到这会导致功能 #1 中断,因为当我离开 TabA 并返回时,子视图也已刷新。idNavigationView

这是由于父视图刷新,并导致该子视图也刷新吗?我没有将任何@Binding's 从父级传递给子级,也没有任何参数传递给子视图的构造函数。

是否有另一种纯 SwiftUI 方法来支持功能 #2?我刚刚开始学习 SwiftUI,不确定如何强制我的 TabView 导航到根视图。

提前感谢您的帮助!

0 投票
1 回答
181 浏览

swiftui - 在 swiftui 中禁用或忽略 TabView 上的点击

我有一个非常普通的应用程序,带有TabView. 但是,当某个内容视图中发生特定过程时,我想阻止用户切换选项卡,直到该过程完成。

如果我disabled在其自身上使用该属性TabView(使用@State绑定来驱动它),那么整个内容视图似乎被禁用 - 水龙头似乎没有通过主视图上的按钮。

例子:

显然,我希望View1仍然允许用户,你知道,做事。当someStateVal为真时,整体View1没有反应。

有没有办法防止基于更改标签someStateVal

谢谢!

0 投票
1 回答
222 浏览

swift - SwiftUI TabView 在添加/删除 CoreData 的元素期间给出错误消息

我目前正在尝试将 TabView 用于带有 CoreData 的轮播视图(PageTabViewStyle)。

当我按如下顺序添加新页面时,不会发生错误 age.name: 3, page.name: 4, page.name: 5

但是会发生错误,如果我在第一/中间顺序中输入一个数字,例如 page.name: 2

如果我输入 page.name: 6,则没有错误,它也与 Alphabet 相同。bcde -> 放“f”,没问题,但是放“a”错误。

关闭应用程序并打开应用程序后,无论如何我都会看到更新的(添加页面/删除页面)ContentView。

我猜,TabView有排序问题,所以我尝试对CoreData的列表进行排序,将LifeCycle改为SwiftUI,但错误一再出现。我也尝试过使用 Firebase,但同样的问题。

错误信息:

内容视图

添加页面

子页面

使用 VStack 或 HStack 或 List 而不是 TabView 可以正常工作,没有任何问题。

0 投票
1 回答
163 浏览

swiftui - 在 SwiftUI 中的 tabview 中嵌入 webview

我一直在尝试创建一个 TabView,PageIndexViewStyle其中每个页面都是一个包含图像和 WebView 的 ScrollView。当我在 TabView 之外创建页面时,@ Asperi的示例代码效果很好,但是当我在 TabView 内移动内容时,第二页上的 WebView 不会显示。

在此处输入图像描述

0 投票
0 回答
140 浏览

swiftui - 隐藏选项卡视图及其在某些视图上占用的空间

我试图在我的应用程序的某些页面上隐藏标签栏。根据此解决方案,我正在使用带有 Introspect 的 SwiftUI 。它可以完美地隐藏标签栏,但隐藏的标签栏仍然占用页面空间。

我想删除隐藏标签栏占用的空间 - 有没有办法做到这一点?

我尝试了一些 hacky 方法,例如设置偏移量或负填充,或者使用 edgesIgnoringSafeArea 然后重新添加填充,但这些似乎并不理想。

我也尝试使用“hidesBottomBarWhenPushed”,因为这是我希望达到的整体效果,但我没有找到一种方法来成功地使用 Introspect。

0 投票
0 回答
122 浏览

swiftui - 在 SwiftUI 中使用 Introspect 隐藏标签栏时查看调整大小

我正在使用 Introspect 隐藏子导航链接页面上的标签栏。但是,当应用程序在后台运行然后又回到前台时,我注意到了一些奇怪的行为。

最初,隐藏的标签栏似乎仍在占用一些空间,但是当将应用程序循环回前台时,这会消失。我不确定这是 SwiftUI 行为还是与我使用 Introspect / UIKit 的方式有关。

它导致我的应用程序出现布局问题,所以如果可能的话,我想让间距保持一致。

查看间距更改

这是一个显示行为的最小示例:

0 投票
0 回答
109 浏览

swiftui - TabView 内的 NavigationView 默认进入下一页

我将导航视图包装在选项卡视图中。但是当我加载应用程序时,默认情况下我的导航视图总是转到下一页。我怎样才能阻止这个?我花了很多时间,但无法弄清楚。

这是我的看法

FirstView 是这样的导航视图

看起来像这样 在此处输入图像描述

0 投票
1 回答
64 浏览

swiftui - 选择新标签时如何更新导航标题?

我有一个带有三个 SwiftUIView(HomeView、FavoritesView 和 ContactsView)的 tabview,每个视图看起来都像下面的 Home View。

}

在此处输入图像描述

我的内容视图如下所示:

}

在此处输入图像描述

但是当我运行应用程序时,每个选项卡都会为导航标题获得相同的“主页”标题。在此处输入图像描述

如何使用正确的选项卡更新导航标题(无需在每个 SwiftUI 视图中添加导航视图)我相信我们应该能够只用一个导航视图来实现这一点?正确的???

0 投票
2 回答
207 浏览

macos - SWIFTUI 2,SWIFTUI 3 - MACOS:为什么每次我切换到另一个选项卡时总是触发 TextField 的 onCommit 关闭

  • 我的代码:我使用onCommit闭包能够在焦点集中时通过按Enter 键TextField来执行操作。
  • 我的问题:onCommit我切换到另一个选项卡时,也总是触发关闭,使我的应用程序执行意外操作。
  • 我的问题:
    1. 这是错误还是功能
    2. onCommit每次我切换到另一个选项卡时,有没有办法避免触发?