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

SwiftUI实现从Scanner Sheet唤起Support Sheet并支持返回的视图层级

解决方案:实现Sheet嵌套层级返回功能

你的问题出在两个sheet都绑定在主视图上,SwiftUI中同一层级的模态sheet会互相替换,导致打开Support Sheet时Scanner Sheet被关闭。要实现从Support Sheet直接返回Scanner Sheet的需求,只需将Support Sheet的sheet修饰符嵌套在Scanner Sheet的视图内部即可,这样就能形成正确的模态层级。

修改后的代码如下:

@State var qrSheet = false
@State var help = false

var body: some View {
    VStack {
        Button("Dashboard") {
            qrSheet.toggle()
        }
        .sheet(isPresented: $qrSheet) {
            // Scanner Sheet 内容
            VStack {
                Button("Help") {
                    help.toggle()
                }
            }
            // 将Support Sheet嵌套在Scanner Sheet内部
            .sheet(isPresented: $help) {
                Text("Support")
            }
        }
    }
}

效果说明:

  • 点击Dashboard按钮打开Scanner Sheet
  • 在Scanner Sheet中点击Help按钮,会在当前sheet之上弹出Support Sheet,Scanner Sheet不会被关闭
  • 关闭Support Sheet后会直接回到Scanner Sheet,符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:01:36