Avatar
ストレージがカツカツで iOS 15.0 Simulator を消しちゃったので 15 ではすぐには試せないですが,iOS 16.5 と iOS 14.0.1 では以下のようなコード (omochimetaru さんが最初らへんに書かれていた必ずリセットされるコードと同等) で T から F に変わって値がリセットされる時に "onAppear F" と "onDisappear T" がこの順番でログに吐かれますね. struct Counter: View { let name: String @State var count = 0 var body: some View { Button("\(name)=\(count)") { count += 1 } .onAppear { print("onAppear \(name)") } .onDisappear { print("onDisappear \(name)") } } } struct ContentView: View { @State var condition = false var body: some View { VStack { if condition { Counter(name: "T") } else { Counter(name: "F") } Button("toggle") { condition.toggle() } } } } (edited)