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

SwiftUI中Sheet首次弹出后自动消失的问题求助

SwiftUI中Sheet首次弹出后自动消失的问题求助

嘿各位开发者朋友,我最近碰到一个挺诡异的SwiftUI Sheet问题,想过来求助大家!

情况是这样的:我用.sheet(isPresented:)来从列表里展开支付明细数据,但每次APP刚启动后第一次调用sheet,它弹出来闪一下就立刻消失了,之后再操作sheet就完全正常,和设计的一样。可只要重启APP,这个问题就又会重复出现,真的搞不懂哪里出问题了。

下面是我代码里的相关片段:

struct MainView: View {
    @Environment(\.managedObjectContext) var context
    @State private var showPaymentDetails = false
    @State private var editPaymentDetails = false
    @State private var selectedPaymentActivity: PaymentActivity?

    private var paymentDataForView: [PaymentActivity]{
        // 这里是准备数据的代码
    }

    var body: some View {
        List{
            ForEach(paymentDataForView) { transaction in
                TransactionCellView(transaction: transaction)
                    .swipeActions(edge: .trailing, allowsFullSwipe: false, content: {
                        Button(action: {
                            // 这里是触发sheet的操作逻辑
                            selectedPaymentActivity = transaction
                            showPaymentDetails = true
                        }) {
                            Label("详情", systemImage: "info.circle")
                        }
                    })
            }
        }
        .sheet(isPresented: $showPaymentDetails) {
            // 支付详情Sheet视图
            PaymentDetailView(
                payment: selectedPaymentActivity,
                isPresented: $showPaymentDetails,
                isEditing: $editPaymentDetails
            )
            .environment(\.managedObjectContext, context)
        }
    }
}

我怀疑是不是showPaymentDetails这个@State变量的状态在首次启动时被意外重置了?或者和我用的Core Data上下文有关联?有没有朋友遇到过类似的情况,或者能给我一些排查的方向呀?

备注:内容来源于stack exchange,提问作者Grigory Konovalov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 08:23:06