You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NavigationStack中从视图A直接跳转至视图C的实现方法问询

当然可行,NavigationStack本身支持直接跳转到任意层级的目标视图,无需经过中间视图B。以下是两种常用的实现方案:

方案一:使用NavigationPath(推荐用于复杂导航场景)

通过绑定NavigationPath对象,可以灵活控制导航栈的内容,直接将目标视图的标识推入栈中实现跳转:

import SwiftUI

struct AView: View {
    // 定义导航路径状态
    @State private var navigationPath = NavigationPath()
    
    var body: some View {
        NavigationStack(path: $navigationPath) {
            VStack(spacing: 20) {
                // 跳转至B视图
                Button("跳转到B") {
                    navigationPath.append("B")
                }
                
                // 直接跳转至C视图
                Button("跳转到C") {
                    navigationPath.append("C")
                }
            }
            .navigationDestination(for: String.self) { destination in
                if destination == "B" {
                    BView()
                } else if destination == "C" {
                    CView()
                }
            }
        }
    }
}

struct BView: View {
    var body: some View {
        Text("这是视图B")
            .navigationTitle("视图B")
    }
}

struct CView: View {
    var body: some View {
        Text("这是视图C")
            .navigationTitle("视图C")
    }
}

方案二:直接绑定触发状态(适合简单导航场景)

通过定义布尔类型的状态变量,控制对应视图的展示:

import SwiftUI

struct AView: View {
    @State private var showB = false
    @State private var showC = false
    
    var body: some View {
        NavigationStack {
            VStack(spacing: 20) {
                Button("跳转到B") {
                    showB = true
                }
                
                Button("跳转到C") {
                    showC = true
                }
            }
            .navigationDestination(isPresented: $showB) {
                BView()
            }
            .navigationDestination(isPresented: $showC) {
                CView()
            }
        }
    }
}

// BView和CView定义同方案一

两种方案都能实现从A直接跳转至C的需求,你可以根据自己的导航复杂度选择合适的方式。

内容的提问来源于stack exchange,提问作者xlubmon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 01:39:56