バッテラが如く

プログラミングしましょ!

【SwiftUI】ListでNaigationLinkすると選択状態になってしまう件について

■開発環境

  • MacOS Monterey (12.1)
  • 事象

    Listでセルをクリックしたら画面遷移するのを作りました(↓参照)

    動画見てもらうとわかると思うのですが戻ってきた時にそのセルが選択状態になっています。

    ※iOS15ではこの現象は発生しません

    これがデザイン的に不具合に見えるので、戻った時には選択状態を解除させる方法について共有したいと思います。

    ※注意 実装の仕方によってこれで解決しないかもです。治ったらラッキー程度と思って下しゃい。

    選択状態を解除する

    Listに対して以下の処理を書きます

    List {
    ~~~~~~~省略~~~~~~~~
    }
    .onDisappear {
        UITableViewCell.appearance().isSelected = false
    }
    

    これで実行してみると。。。

    無事選択状態が解除できました!

    参考にしたサイト

    ios - How to remove highlight on tap of List with SwiftUI? - Stack Overflow

    おわりに

    最後まで見ていただきヘペトナス!

    読者登録・Twitterのフォローもお願いします。