ナビゲーション コントローラーはいつ使用すればよいですか? 質問する

ナビゲーション コントローラーはいつ使用すればよいですか? 質問する

通常の View Controller で segue を使用する代わりに、Navigation Controller を使用する必要があるのはいつなのかわかりません。また、segue を使用する場合、Modal と Push segue の違いは何ですか?

例を挙げていただけますか?

ベストアンサー1

短い答え:ドリルダウン動作を実装するには、「show」セグエのみを含むナビゲーション コントローラーを使用します。

たとえば、ナビゲーション コントローラ → 著者 → 書籍 → 書籍

  • 「ルート」(著者)の下の各レベルに対して、ナビゲーションコントローラ自動的にタイトル バーと戻るボタンを追加します。そのため、Books では、戻るボタンの名前は自動的に「<Authors」になります。

  • 子ビューコントローラSHOWセグエで接続する必要があります-- 表示セグエは、ナビゲーション コントローラーに「これは親子関係です」と伝え、期待どおりに右からスライドインする遷移を引き起こします。(階層外にジャンプするには、たとえば Books → Login のように、代わりにモーダル セグエを使用します。)

  • ルート ビュー コントローラーには、さらにバー ボタンを追加できるナビゲーション バーがありますが、子ビュー コントローラーには自動的に追加されるため、ナビゲーション バーはありません。

FoodTracker の例

AppleのFoodTrackerチュートリアルのレイアウトが奇妙に見えるが、iOS アプリの開発を始める (Swift)説明できます。**2 番目にネストされたナビゲーション コントローラーとはどういうものですか? これは単なる食事のリストです。食事をタップすると食事の詳細が表示され、追加をタップすると食事の詳細が食事の追加になります。

FoodTracker ストーリーボード

  • 最初のナビゲーション コントローラーは、My Meals を、そこから「プッシュ」される任意の数のビューのドリルダウン階層のルートにします (これを行うためだけに、さらにナビゲーション コントローラーは必要ありません)。

  • ただし、食事の詳細は、既存の食事の表示と新しい食事の追加の両方に使用されます。新しい食事を追加するには、[キャンセル] ボタンと [保存] ボタンが必要です。2 番目のナビゲーション コントローラーでは、食事の詳細をルートにすることで、これらのボタンを追加できます (上記の 3 番目のポイントを参照)。

  • 既存の食事を表示するのはプッシュ セグエですが、食事を追加するのはモーダル セグエです (新しい食事はドリルダウンではありません)。これは重要です。食事の追加を単に押すことができない理由は、自動の戻るボタン ("< マイ ミール") があいまいになるためです。保存するのか、キャンセルするのか?

「ナビゲーション」と「プッシュ」は非常に一般的な用語であり、無料の「戻る」ボタンを利用できるのは便利なので、ナビゲーション コントローラーはどこからでもどこにでも移動できると考えがちですが、この動作は階層的なトラバーサルのみを目的としています。

(これは古い質問ですが、私も iOS 初心者としてこれについて混乱しており、OP と同様にまだ疑問が残っていました。)

おすすめ記事