🏠
iOSのナビゲーションバーは誰のもの?
iOSのナビゲーションバーは誰のもの?
iPhoneアプリを使っていると、画面上部にある帯状のバー。これが「ナビゲーションバー」です。
多くのアプリで画面の上部に表示されていて、タイトルや戻るボタンが配置されています。
このナビゲーションバー、実は誰のものなのか考えたことはありますか?
誤解されがちなナビゲーションバーの正体
アプリを操作していると、画面が切り替わるたびにナビゲーションバーの内容も変わります。
このため「各画面がそれぞれ自分専用のナビゲーションバーを持っている」と思いがちです。
ナビゲーションバーの本当の持ち主
ナビゲーションバーは、実は「ナビゲーションコントローラ」という、画面遷移を管理する仕組みの一部です。各画面(「ビューコントローラ」と呼びます)が自分専用のナビゲーションバーを持っているわけではありません。
これを住宅に例えるとわかりやすいかもしれません
- ナビゲーションコントローラ = 1軒の家
- ナビゲーションバー = その家の屋根
- ビューコントローラ(各画面) = 家の中の部屋
あなたが部屋から部屋へと移動しても、屋根は同じ一つの屋根のままです。見える天井(ナビゲーションバーの内容)は部屋ごとに違って見えますが、実際の屋根(ナビゲーションバー自体)は家全体で一つなのです。
具体的な構造
ナビゲーションコントローラは、以下のような構造になっています
- 最上部に一つのナビゲーションバーがある
- その下に「画面のスタック」がある(重ねられたカードのイメージ)
- 一番上の画面だけが見えている
メンバーの詳細画面が右から左にスライドして表示される例。このとき、ナビゲーションバーは変わらず同じものが使われています。
画面を切り替えると、新しい画面がスタックの一番上に追加され、ナビゲーションバーの「内容」(タイトルやボタンなど)は更新されますが、ナビゲーションバー自体は同じものが使われ続けます。
Discussion