问题标签 [navigationlink]

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 投票
5 回答
2412 浏览

ios - 如何处理 UIViewControllerRepresentable 包装器中的 NavigationLink?

所以我正在尝试创建一个自定义分页滚动视图。我已经能够创建该包装器,并且该包装器内的内容由一个自定义视图组成。在该自定义视图中,我有两个 NavigationLink 按钮,按下时应该将用户带到两个不同的视图。

那些 NavigationLink 按钮不起作用。

位于scrollViewWrapperNavigationView 内。我创建了一个测试按钮,它只是一个简单的按钮,似乎可以工作。所以有些事情我在 NavigationLink 和 custom 上做得不对UIViewControllerRepresentable

这是我使用自定义包装器的地方。

入职视图:

自定义 ScrollView Wrapper 代码:

0 投票
2 回答
3317 浏览

uiviewcontroller - 为什么 NavigationLink 按钮在自定义 UIViewControllerRepresentable 包装器中显示为“禁用”

我创建了一个符合 UIViewControllerRepresentable 的包装器。我创建了一个 UIViewController,其中包含一个启用了分页的 UIScrollView。自定义包装器可以正常工作。

此按钮显示为禁用并显示为灰色。点击它什么都不做。但是,如果将相同的按钮放在 ScrollView {} 包装器中,它就可以工作。

我在这里想念什么。这是自定义滚动视图类代码:

更新

这就是我使用包装器的方式:

“导航链接测试”按钮显示为灰色。 在此处输入图像描述

0 投票
0 回答
2155 浏览

swift - 按下 NavigationLink 时调用 SwiftUI 按钮操作,并且主视图不会更新

我有一个看起来像这样的 SwiftUI 视图(出于隐私原因进行了简化):

导航工作得很好,并且DetailView有更新的状态(toggle只是切换状态),但是当我回到主视图时,状态没有更新。为什么是这样?

而且我需要按钮与文本不同 - 这可能吗?我希望按下按钮来执行按钮操作,而该行的其余部分充当NavigationLink. 我怎样才能做到这一点?

self.completed是一个CompletionStatus类,它是一个,ObservableObject具有一个@Published属性statustask@State类型Task,其中包含completed(CompletionStatus) 属性。如果我能提供更多信息,请告诉我。

这里分别是TaskCompletionStatus结构体和类:

0 投票
2 回答
1959 浏览

swiftui - SwiftUI NavigationLink 按钮是灰色且不可触摸

我无法NavigationLink在 SwiftUI 中获得。该按钮是可见的,但不幸的是这是灰色的,无法单击。

这是代码:

有谁知道这个问题?

0 投票
1 回答
1005 浏览

navigation - SwiftUI Scrollview 打破 NavigationLink 行为

我在详细信息视图中切换设置时遇到问题,在切换设置后,导航立即弹回主屏幕。只有在主屏幕上使用 ScrollView 而不是 List 时才会发生这种情况。有没有人有解决方案或知道这是否是要修复的错误?我今天等待 Xcode 11 Beta 7,但这并没有解决问题。

ScrollView 的当前行为:

  1. 单击要转到详细信息屏幕的行
  2. 点击开始切换收藏设置
  3. 立即跳回主屏幕

ScrollView 的预期行为(List 的当前行为):

  1. 单击要转到详细信息屏幕的行
  2. 点击开始切换收藏设置
  3. 留在详细信息屏幕上,并能够一遍又一遍地切换最喜欢的设置
  4. 单击返回按钮返回主屏幕

    /li>
0 投票
1 回答
561 浏览

swiftui - SwiftUI:NavigationLink 的目标在其父项被重绘时初始化

所以我有一个ParentView,它有一个NavigationLink,导致一个UIViewControllerRepresentable-conforming PageViewController

现在,它ParentView也有一些出版商的订阅。每当那个被触发时,不仅会ParentView重绘它的所有内容(它应该),它还会重新初始化(已经呈现)PageViewController

这会导致卡顿/故障,因为PageViewController它已经在呈现和使用不断被重置的控制器。

下面是ParentViewand PageViewController(没有 Coordinator 的东西),两者都很普通。带注释的警戒线是我试图阻止它更新(如果已经显示)的黑客行为。它有帮助,但每次滑动时它仍然结结巴巴。

所以问题是:当它的呈现视图被重绘时,我们如何防止更新呈现的 ViewController-wrapped-View?

0 投票
1 回答
7417 浏览

apple-watch - 在 SwiftUI 中以编程方式使用 NavigationLink

如果满足某些条件,我正在寻找一种方法来在应用程序启动时从 NavigationView“一级”显示我的 WatchOS 应用程序中的视图。

我想要与自己按下 NavigationLink 相同的效果,即能够再次返回 NavigationView,如果我选择立即显示所需的视图,这是不可能的。

WatchOS 也无法使用“navigationBarItems”,这使得如果不首先实际单击 NavigationLink 就无法向后导航。

有没有办法以编程方式“单击” NavigationLink 以实现此目的?

0 投票
1 回答
5523 浏览

swiftui - 使用 NavigationLink 将信息传递到另一个视图

我有以下视图,我需要将item内容传递给另一个视图(DetailsEvent.swift),我正在使用NavigationLink. (我正在使用 Xcode 11 GM)

但它给了我以下错误:

传递给不带参数的调用的参数

不传递任何变量:NavigationLink (destination: DetailsEvent ()一切正常。

详情Event.swift

错误

0 投票
1 回答
2505 浏览

ios - 在遗留项目中支持 SwiftUI 导航

我想知道是否有任何方法可以在遗留项目中开始使用SwiftUI,并且仍然能够在SwiftUI场景中来回导航。也就是说,假设我只想为我去年一直在从事的项目支持最后一个iOS 13 。一切都建立在UIKit之上,导航以通常的方式呈现或推送视图控制器。

现在我想开始使用 SwiftUI,所以我在项目的 General 中启用了该选项,目标为iOS 13 ,在Info.plist 中获取我的SceneDelegate和我的新键值对。为了导航到Swift UI场景,我可以推送一个UIHostingViewController,它的 rootView 将是我新设计的SwiftUI视图。但是如何使用NavigationLink推送旧的UIKit视图控制器?