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

swiftui - 如何让 SwiftUI 中的列表能够根据行指向多个视图

表达这一点的一种简单方法是回到 UITableView 并拥有一个didSelectRowAt(indexPath)行为如下的函数:

根据 indexPath.row 的值,我可以调用一个唯一的视图控制器(例如:第一个是 TableView,其他的是 CollectionViews。

目前,基于到目前为止的两个答案,我可以生成以下代码:

但是,我的 NavigationLink 出现以下错误:

'? 中的结果值 :' 表达式具有不匹配的类型 'FirstList' 和 'SecondView'

由于我的目标是根据标题提出两种不同的观点,因此我想找到一些方法来实现这一目标。

superpuccio发布的答案似乎与我想要的非常接近,但是由于目标视图的预期复杂性,我认为完全在 NavigationLink 中组合它们是不可行的。

0 投票
1 回答
7206 浏览

swiftui - 从 SwiftUI 中的后退按钮中删除文本

简而言之,我想这样做,但使用 SwiftUI。

在此处输入图像描述

应该被删除)

到目前为止,我还没有找到NavigationBarButton直接访问的方法,并设法找到以下似乎是迄今为止我能找到的修改按钮的唯一方法:

但是,我丢失了默认的返回图像并得到了一个丑陋的 < 。

在此处输入图像描述

0 投票
1 回答
1436 浏览

swiftui - 在 SwiftUI 中切换导航栏上的按钮并更改外观

使用SwiftUI,我希望能够NavigationView根据一些 Bool 值更改我的按钮,指示它应该是On还是Off

在此处输入图像描述

这将类似于使用 UIKit 您可以替换屏幕任一侧的条形按钮项以在单击时显示不同的按钮和相关操作。

0 投票
1 回答
4089 浏览

swift - SwiftUI:如何使用 NavigationViews 切换到新的导航堆栈

我目前正在使用 SwiftUI Beta 5。我有一个工作流程,其中涉及浏览一系列视图。最后一个视图涉及将大量数据填充到应用程序中并结束该特定工作流的操作。

下载数据后,用户应该能够开始新的工作流程。我想“忘记”旧的 NavigationView,因为一旦工作流完成,返回导航堆栈是没有用的。相反,我想导航到“启动”视图,该视图有效地成为新导航视图的根。

如何使用 SwiftUI NavigagationViews 使用导航堆栈中的一个视图导航到具有不同 NavigationView(并因此成为新导航堆栈的根)的另一个视图?

0 投票
3 回答
10196 浏览

swift - SwiftUI 应用程序的 NavigationView 中的 onAppear 和 onDisappear 是否按预期运行?

我想知道 SwiftUI 中的 onAppear 和 onDisappear 的行为(我写这篇文章时是 Xcode 11 beta 6)是开发人员会发现更有用的东西,还是只是一个问题而不是功能。

现在,如果我们使用您在我附加的示例代码中找到的级联导航(在 Xcode 11b6 中编译和运行良好),则用户来回导航的控制台输出只会在以下情况下触发 onAppear向前方向的新视图加载(意味着更深入)。

在导航中: Root -> NestedView1 -> NestedView2 -> NestedView3 ,向每个视图阶段添加调试助手时,

调试控制台会显示

onAppear root level 0
onAppear level 1
onAppear level 2
onAppear level 3

(没有 onDisappear 触发)

但返回 Root <- NestedView1 <- NestedView2 <- NestedView3

调试控制台会显示...什么都没有

(没有 onAppear 或 onDisappear 触发)

现在,开发人员是否宁愿拥有 onAppear 和 onDisappear:

1) 触发的目的是为了启动只需要执行一次且仅在用户向前移动时执行的操作,例如在当前观察到的行为中。

2)每次视图出现时触发,更像是动作名称的意思,无论是向后,向前还是任意次数。

我会选择选项 2,简单而残酷(以及我目前需要的),但我在 NavigationView 是一个相当天真的新手,选项 2 可能会破坏许多我没有考虑到的既定范例。

您的反馈将帮助我了解 SwiftUI 的相应反馈助手案例是否有正当理由。

0 投票
1 回答
2812 浏览

swift - 在 SwiftUI 中使用 TabView 时,NavigationView 无法正确显示

大家好。我正在开发一个显示一些推文的简单 SwiftUI 应用程序。它有一个带有两个视图的选项卡视图:将显示推文的主页和一个辅助视图。

问题是主页有一个NavigationView. 如果我选择只显示主页,一切似乎都是正确的,但是当我从 中显示它TabView并向下滚动时,NavigationView 感觉有点奇怪。

由于我不擅长解释,这里有一些图像:

应该是这样的 应该是这样的

但它是这样的 但就是这样

我想添加.edgesIgnoringSafeArea(.top),但是 NavigationView 现在被凹槽隐藏了,并且没有效果。

有什么方法可以让 NavigationView 像第一张图片一样显示?

任何帮助表示赞赏。提前致谢。

我的代码

主页视图

选项卡视图

0 投票
1 回答
372 浏览

ios - SwifUI 中的生命周期:离开 NavigationView 层次结构的子视图时运行代码

使用 SwiftUI 的 NavigationView,我们可以从代码构造的简单性中受益。然而,没有暴露,至少在这些早期阶段是覆盖。此外,减少对视图生命周期管理的关注使得很难根据视图的状态找出调用什么以及何时调用某些东西。

当用户选择返回 NavigationView 层次结构(即单击 NavigationView 提供的后退按钮)时,我想运行一些代码。

我已经尝试过 onDisappear() {} 并且它是其他变体,我无法让它工作。它似乎没有被调用。onAppear() {} 确实有效,所以我很难过。

任何帮助将不胜感激!

0 投票
1 回答
2968 浏览

swift - 如何在 SwiftUI 中将 TabView 与 NavigationView 一起使用?

我遇到了与发布此问题的人完全相同的问题:

在 SwiftUI 中使用 TabView 时,NavigationView 无法正确显示

我做错了什么,还是只是一个 SwiftUI 的错误将被修复?

0 投票
0 回答
416 浏览

iphone - 使用 SwiftUI 旋转 List 时遇到意外行为

我已经设置了一个嵌入在 NavigationView 中的相对基本的列表,但是当我执行旋转时,事情并没有按预期工作。

以下屏幕截图显示了事件的顺序。

当视图最初呈现在iPhone上时(运行 iOS 13.1 17A844

在此处输入图像描述

当视图从纵向旋转到横向时

在此处输入图像描述

我在这里的主要兴趣是后退按钮消失了。

最后,当它旋转回纵向时

在此处输入图像描述

请注意,Bar Title已经缩小,现在与后退按钮对齐。

这是我用来生成这些屏幕的代码的简化版本:

理想情况下,我希望 UI 在旋转后保持相同的外观。

作为比较,当我在使用iOS 13.1 (17A844)的物理 iPad 上运行它时,它的行为符合预期。

0 投票
2 回答
319 浏览

swiftui - NavigationView 中的 Actionsheet 似乎有错误

我做了一些测试。如果我只是做一个这样的按钮:

有用!

但是如果我把它放进去NavigationView,就会出现错误!当ActionSheet我单击 时会再次弹出Cancel

在此处输入图像描述