🏍️
SwiftUIでCoreDataを更新するとdismissする現象と対策
SwiftUIで不思議な現象があったので共有します。
ある FirstView
から SecondView
に NavigationLink
で遷移して、遷移先のViewでCoreDataを更新すると SecondView
が dismiss され、 FirstView
に戻る現象が起きていました。
この現象が起きる最低限のコードは以下の通りです。
このコードでは SecondView
の Button
を押すと Item
の更新が実行されるのだが、そのタイミングで FirstView
に戻るようになっていました。
この現象の原因は FirstView
で Item
を ListItem
に変換する以下のコードにありました。
このコードを削除することで解決しました。
private var listItems: [ListItem] {
return self.items.map({ ListItem(date: $0.timestamp ?? Date()) })
}
もしこの現象に困っている方がいましたら、参考にしてみて下さい。
そして本当の原因を知っている方がいましたら、教えていただけると嬉しいです。
Discussion