質問: ### 前提・実現したいこと 質問をご覧いただきまして、ありがとうございます。 現在、NavigationControllerを使用した画面遷移について、 不明点があり、悩んでおります。 実現したいことを画像にまとめてみましたので、 ご覧いただければと思います。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/ee2db0b6de31e1032ce453f07b5c71b8.png) 不明なのは、tableVC2とtableVC3との間の画面遷移です。 tableVC1とtableVC2、また、tableVC1とtableVC3の画面遷移では、 "Show"で遷移するように設定しているのですが、 tableVC2とtableVC3の間のsegueを作成すると、tableVC1との接続で生じているNavigationItemの部分が消えてしまいます。 画像のような機能を実装するのは可能でしょうか? また、可能であれば、どのように実装するべきか ご教示いただければ幸いです。 よろしくお願い致します。
回答: 話の腰を折ってしまうようで申し訳ないですが、 tableVC2とtableVC3で表示するそれぞれのテーブル内容は、同じデータですか? もしそうでしたら、tableVC2とtableVC3の間で画面遷移するのではなく、 とかで解説されているように、UITableViewを編集モードにしてセルの追加/削除/移動等のテーブル編集処理ができるようにすべきだと思います。 もし「編集」と言っているのがテーブルの編集ではなく、特定のセル内のデータを編集する話であれば、tableVC3のセルをタップしたら、指定の1セルだけを編集可能な状態で表示する別のViewControllerに画面遷移し、その画面で特定の1セルを編集する形にすべきだと思います。 画面遷移の考え方についてあまり理解されていないように思いますので、一度 を読んでみることをお勧めします。 NavigationControllerを使用した画面遷移は上記の記事の「プッシュ(階層型)」と描かれている画面遷移です。この画面遷移を「階層型」と呼ぶのは私はあまり好きではないのですが、情報に一定方向の流れがある時に左から右に画面遷移していくことで順に表示していく画面遷移方式がNavigationControllerを使用した画面遷移です。 その考えからすると、同じデータを表示モードか編集モードに切り替えるのは、NavigationControllerを使用した画面遷移には馴染みません。それは同じデータの表示形式が変わるだけなので、画面遷移ではなく画面のレイアウト容を変えて対応すべきだということです。