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

ios - SwiftUI 在 NavigationLink 视图中隐藏 TabView 栏

我有一个 TabView 和每个 Tab 项的单独 NavigationView 堆栈。它运行良好,但是当我打开任何 NavigationLink 时,仍然显示 TabView 栏。每当我单击任何 NavigationLink 时,我都希望它消失。

我找到了将 TabView 放在 NavigationView 中的解决方案,因此在单击 NavigationLink 后,TabView 栏被隐藏。但这会弄乱 Tab 项的 NavigationBarTitles。

使用此解决方案,使每个 TabView 项具有不同 NavigationTabBars 的唯一方法是使用嵌套 NavigationViews。也许有一种方法可以正确实现嵌套的 NavigationViews?(据我所知,导航层次结构中应该只有一个 NavigationView)。

如何在 SwiftUI 中正确隐藏 NavigationLink 视图中的 TabView 栏?

0 投票
1 回答
2732 浏览

ios - 如何替换 SwiftUI 中的当前视图?

我正在使用 SwiftUI 开发应用程序。

我有一个 NavigationView,并且导航栏上有按钮。我想用另一个替换当前视图(这是 TabView 选择的结果)。

基本上,当用户单击“编辑”按钮时,我想用另一个视图替换视图以进行编辑,当用户完成时,通过单击“完成”按钮恢复以前的视图。

我可以只使用一个变量来动态选择在当前选项卡视图上显示哪个视图,但我觉得这不是 SwiftUI 中的“正确做法”。这样我就无法应用任何过渡视觉效果。

一些代码示例来解释我在寻找什么。

谢谢

编辑

我有一个工作版本,我只需在按钮操作中更新一个切换变量,使我的视图显示一件或另一件事,它正在工作,但我无法对其应用任何动画效果,而且它在 SwiftUI 中看起来不“正确” ,我想有更好的东西我不知道。

0 投票
0 回答
409 浏览

ios - SwiftUI TabView 没有响应

:-) 这里有一个可能很愚蠢的问题,有点序言抱歉!

长话短说 - 由于 SwiftUI 中的 TabView 存在错误,我一直在开发一个应用程序。我用 ZLayer 覆盖选项卡以在中间添加一个时髦的大按钮 - 所以当我遇到问题时,我认为这将是问题......但这很快就变得无关紧要了。

为简单起见,我在 XCode v11.6 中启动了一个新项目,构建目标 iOS 13.6,Selected Tabbed App,创建了一个非常简单的带有 2 个选项卡的样板 SwiftUI 内容视图。(为了清楚起见 - 我根本没有修改默认代码)。在模拟器上完美运行。插入运行 iOS 13.6.1 的 iPhone XS(当我第一次遇到这个问题时,我是在 13.5 上,所以在出现这个问题时更新了 iOS 版本)。在我的手机上运行简单的、未经修改的应用程序。加载“第一个视图”,我点击“第二个”选项卡,什么都没有。完全没有反应。这与我在更复杂的应用程序中遇到的问题相同。偶尔,如果我继续重建。它会让我切换到“第二视图”,但随后无法切换回来。选项卡控制器似乎变得无响应。

现在回到我更复杂的应用程序,在第一个视图上有一个滚动视图,并且有一个带有附加 actionSheet 的按钮。如果我弹出打开操作表,然后将其关闭(无论只是调用 .cancel() 按钮还是选择一个操作),选项卡控制器都会完美运行。还有另一个选项可以打开另一个工作表,一旦覆盖了某些内容,一切都会按预期工作,直到下一次应用程序启动。

尝试重置我的 MacBook,尝试重置我的 iPhone,尝试卸载构建然后重新构建,清理构建文件夹,尝试使用构建目标 iOS 13、13.2、13.5、13.6 创建多个项目。问题似乎仍然存在,但每次模拟器都能完美运行。

所以我的问题是:从我的搜索中我找不到有这个问题的人。真的只有我吗?任何拥有 XCode 11.6 和 iPhone XS 的人都可以点击“New Project”->“Tabbed App”并让我知道这是否有效?(我几乎想知道当您创建应用程序时 XCode 11.6 中是否存在错误,并且每个人都在从事已经在 XCode 11.6 之前创建的项目或已经使用 beta XCode 的项目......但实际上我只是没有想法)还有没有更深层次的调试可以做?诸如实际通知我它收到的每一次触摸以及应用沙盒是否正在获得触摸或操作系统(出于某种原因)是否保持点击手势之类的东西?我从来没有经历过这样的事情,所以我真的不知道从哪里开始调试,因为我不知道 甚至不知道应用程序是否正在接收点击。或者坦率地说 - 有没有人有任何其他想法?

只是为了清楚起见 - ContentView 看起来像这样:(同样它直接来自 XCode 为选项卡式应用程序创建的内容)

在此先感谢并为漫长的漫谈道歉 - 来自一个非常昏昏欲睡的开发者!

0 投票
2 回答
429 浏览

ios - SwiftUI TabView 不更新视图

我的问题是 TabView 没有更新。

我想登录,然后在同一个TabItem.

只有在我杀死应用程序并重新打开它之后才会TabView出现。ProfileScreen

这是TabView代码:

我尝试过的事情:

  • 将不同的@State 值传递给两个屏幕
  • 在 LoginScreen 中呈现配置文件屏幕,但它呈现在 TabView 的顶部
0 投票
0 回答
1597 浏览

swiftui - iOS14 SwiftUI 如何在 TabView 上禁用滚动

我使用带有 PageTabViewStyle 的 TabView 来构建 pageView,但是我想单击某个按钮来更改位置,而不是通过手指手势自动滚动来更改位置,所以我想禁用自动滚动,如何更新我的代码来实现这一点

谢谢!

0 投票
1 回答
1350 浏览

swift - SwiftUI reload view on double tap on tab item

I'm trying to implement a feature to an app I'm working on so that when a user taps a tab twice, it will automatically send the user back to the tab's initial view.

Suppose that I want the following "Devices" tab button to reload the view on a double tap:

enter image description here

This is the code I've been trying to use to solve this issue:

However, the result of the onTapGesture won't switch the view, therefore I wanted to ask whether there is another solution to the problem.

Thanks in advance.

0 投票
1 回答
2060 浏览

swift - Nested TabView - 删除内部标签栏 iOS 13,Swift UI

我使用 aTabView来表示三个选项卡。在 iOS 14 中,这处理得很好,但是 iOS 13 导致一个灰色的底栏,它是导航的标签栏。我怎样才能删除这个栏?

请记住,这是一个TabView在一个内TabView。外部TabView的栏显示在底部,有五个选项卡;TabView我根本不想显示的内栏。

下面的代码代表内部TabView

下图左侧为 iOS 13,右侧为 iOS 14。

左:iOS 13,右:iOS 14

最小、完整和可验证的示例

如果下面的代码在 iOS 13 上启动,您会注意到底部有一个标签栏,顶部有一个空标签栏。

0 投票
3 回答
1577 浏览

keyboard - SwiftUI 中出现键盘时 OnAppear 意外调用

我在 SwiftUI 2.0 和 iOS14 中遇到了非常奇怪的行为。

当键盘出现在屏幕上时,自动调用其他选项卡视图的 OnAppear 方法。

但是,这很好用 Xcode 11.7

这是实际的问题。 选项卡视图中的文本字段

这是产生上述错误的代码。

这似乎是 SwiftUI 2.0 的错误,但不确定。任何帮助将不胜感激。

谢谢

0 投票
1 回答
1014 浏览

swiftui - SwiftUI 选项卡视图显示表

我是 SwiftUI 的新手,我尝试构建一个选项卡栏,其中包含一个选项卡,该选项卡将返回模式(工作表)但不返回视图。在我尝试之后,我发现有时它会起作用,但有时不会。我想在用户关闭模式后将前一个选项卡项设为选定选项卡。但我找不到什么错误。有人向我解释我的代码有什么问题吗?

0 投票
1 回答
751 浏览

ios - 带有 PageTabViewStyle() 的 TabView 不使用 ScrollView 中的可用高度

所以我有一个如下所示的 TabView,但是当我尝试在 ScrollView 中实现它时,我总是必须给它一个固定的高度。有没有办法告诉tabview使用它在scrollView中需要的空间?我不知道 TabView 的内部内容的高度(顺便说一句。随时间变化),所以固定高度对我不起作用。

我尝试了 .frame(maxHeight: .infinity),但这似乎不起作用