1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SwiftUIでの画面遷移問題: NavigationViewからNavigationStackへの移行

Last updated at Posted at 2024-01-13

SwiftUIを使用する際に直面した、NavigationViewを用いた画面遷移の問題について共有したいと思います。この問題は、遷移前の画面でCore Dataをfetchする際に生じました。具体的には、遷移前の画面でCore Dataを取得し、遷移先の画面でそのデータを更新すると、遷移前の画面が再レンダリングされてしまいました。その結果、NavigationViewのdestinationが解除され、自動的に遷移前の画面に戻ってしまうという状況が発生しました。

この問題には、SwiftUIのNavigationStackの使用が効果的な解決策でした。最近、NavigationViewは非推奨とされ、NavigationStackが推奨されています。NavigationStackに移行したところ、上記の問題が解消されました。NavigationStackは、より直感的で使いやすいAPIを提供し、画面遷移におけるこのような問題を解決するのに役立ちます。

この記事は、同じ問題に直面している他の開発者の参考になることを願っています。SwiftUIの動作に関しては、時に直感に反することがあり、このような具体的な経験を共有することが重要だと感じています。


個人でアプリを開発しています。ベビーカーや車椅子利用の方に便利な、駅のエレベーター出入口を探せるアプリを開発しました。ぜひご利用ください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?