Avatar
Avatar
omochimetaru
// 素早くトグルすれば値が生きている struct ContentViewE: View { @State var toggle = false var body: some View { if toggle { VStack { TextView() Button { toggle.toggle() } label: { Text("toggle if") } } } else { VStack { TextView() Button { toggle.toggle() } label: { Text("toggle if") } } } } } final class ViewModel: ObservableObject { @Published var count = 0 } struct TextView: View { @StateObject var viewModel: ViewModel init() { _viewModel = .init(wrappedValue: ViewModel()) } var body: some View { Button { viewModel.count += 1 } label: { Text("count: \(viewModel.count)") } } }
手元で確認してみたのですが、ContentViewEだとそもそもTextViewのonDisappearが素早く動かした時に呼ばれていないので、非表示なViewとしてSwiftUIに認識されていないかもですね... (ContentViewDのTextViewのonDisappearは呼ばれていますが...) (edited)