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

Xcode中如何通过按钮将@State状态变量重置为初始值

解决方案

方案1:直接赋值重置(适合变量数量少的场景)

直接在删除按钮的点击回调中给所有@State变量赋值初始值即可,修改你的按钮代码如下:

primaryButton: .destructive(Text("Delete")) {
    statsValue1 = 0
    statsValue2 = 0
    statsValue3 = 0
    statsValue4 = 0
    statsValue5 = 0
    statsValue6 = 0
}, secondaryButton: .cancel()

方案2:封装结构体重置(适合变量多、后续维护需求高的场景)

把所有统计相关的变量封装为一个值类型的结构体,重置时只需重新实例化结构体即可,代码更简洁易维护:

  1. 首先定义统计数据结构体
struct Stats {
    var value1 = 0
    var value2 = 0
    var value3 = 0
    var value4 = 0
    var value5 = 0
    var value6 = 0
}
  1. 替换主视图中的@State定义
@State var stats = Stats()
  1. 修改按钮点击逻辑
primaryButton: .destructive(Text("Delete")) {
    stats = Stats()
}, secondaryButton: .cancel()

注意事项

  • @State变量的修改操作必须在当前视图的执行路径内完成,不要在外部类、全局函数中修改当前视图的@State,否则会不生效
  • @State只适合存储值类型,如果你之前把这些变量存在类实例里,需要改为结构体存储才能正常触发视图刷新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:06:00