如何在没有 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 中的另一个视图?的主要内容,如果未能解决你的问题,请参考以下文章