如何在没有 SwiftUI 中的 NavigationButton 的情况下导航到 NavigationView 中的另一个视图?

Posted

技术标签:

【中文标题】如何在没有 SwiftUI 中的 NavigationButton 的情况下导航到 NavigationView 中的另一个视图?【英文标题】:How to navigate to another view in NavigationView without NavigationButton in SwiftUI? 【发布时间】:2019-06-12 07:04:17 【问题描述】:

正如问题所说,我想在没有 NavigationButton 的情况下导航到另一个视图,例如 UIkit 中的“pushView”和“popView”

【问题讨论】:

你可以和PresentationButton一起使用 我认为(目前)还没有其他方式来推送/弹出视图 PresentationButton 是@Anbu.Karthik 所说的正确答案。 为什么不想使用NavigationButton @Fogmeister 因为我想在按下按钮时向服务器发出请求,并在我得到服务器的响应后导航到下一个视图,但我没有管理如何做到这一点一个 NavigationButton,只有 Button :( 【参考方案1】:

我认为这更像是一种解决限制的方法,但它对我有用:

添加一个布尔状态变量,用于定义链接是否处于活动状态。例如:

@State private var showLinkTarget = false

像这样添加一个不可见的 NavigationLink:

NavigationLink(destination: LinkTargetView(), isActive: self.$showLinkTarget ) 
   Spacer().fixedSize() 

【讨论】:

问题是这个逻辑在我的情况下只工作一次 或者使用 EmptyView 代替 Spacer().fixedSize() 如果它只工作一次,您是否确保在返回时再次将 showLinkTarget 设置为 false?

以上是关于如何在没有 SwiftUI 中的 NavigationButton 的情况下导航到 NavigationView 中的另一个视图?的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 在搜索结果中突出显示单词

如何在没有 SwiftUI 中的 NavigationButton 的情况下导航到 NavigationView 中的另一个视图?

如何有效地过滤 SwiftUI 中的长列表?

如何使 SwiftUI 中的 SF 符号具有相同的宽度

SwiftUI - 如何在 CoreData 中删除实体中的行

SwiftUI:如何将图像更新为 TabView 中的填充/轮廓