SwiftUI 通过程序实现导航

在 SwiftUI 中,我们一般使用 NavigationLink 创建导航链接,用户点击之后,导航到对应页面。但是有时需要不通过直接点击链接进行导航。

场景

  • 场景一: 调用 api 成功返回数据后自动导航到下个页面。
  • 场景二: Menu 菜单中的按钮,点击之后进行导航。

实现方式

有三种以上的方式可以实现。我们只讲最简单的一种:使用 navigationDestination(isPresented:destination:)


struct ExampleView: View {
    @State private var isShow = false
    
    var body: some View {
        NavigationStack {
            VStack {
                Button("showTargetView"){
                    isShow = true
                }
            }
    		.navigationDestination(isPresented: $isShow) { TargetView() }
        }
    }
}

关键有三点:

  1. 必须在 NavigationView, NavigationStack, NavigationSplitView 内部使用。上例中是 NavigationStack
  2. 必须包含一个 State,用来保存状态。上例中是 isShow
  3. 必须包含一个触发元素,用来切换 State。上例中是 Button

当然,还有其它方法,但都不如这中方法简单直观。

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值