Swift画面遷移の基本を徹底解説!NavigationControllerとSegueの使い方
生徒
「先生、iPhoneアプリで画面を切り替える方法ってどうやるんですか?」
先生
「画面遷移ですね。SwiftではNavigationControllerやSegueを使って、簡単に画面を切り替えることができます。」
生徒
「NavigationControllerとSegueって何が違うんですか?」
先生
「それを順番に説明していきましょう。初心者でも理解できるように例え話を交えながら進めますよ。」
1. 画面遷移とは?
アプリの「画面遷移」とは、ある画面から別の画面に切り替わることを指します。例えば、LINEアプリでトーク一覧から友達とのチャット画面に移動するのも画面遷移です。Swiftでアプリを作るとき、ユーザーにとって自然な流れを作るために画面遷移はとても重要です。
初心者にとって画面遷移は難しそうに見えますが、NavigationControllerやSegueを使えば直感的に扱うことができます。
2. NavigationControllerとは?
NavigationController(ナビゲーションコントローラ)は、アプリの画面を「スタック構造」で管理する仕組みです。スタックとは「積み重ね」のことで、戻るボタンで前の画面に戻れるのはこの仕組みのおかげです。
例えば、本を読んでいるときにしおりを挟んで次のページに進むイメージです。戻りたいときはしおりを外して前のページに戻れます。NavigationControllerはこのように「進む」「戻る」を簡単に管理してくれます。
let nextVC = NextViewController()
self.navigationController?.pushViewController(nextVC, animated: true)
このコードは、ボタンを押したときに次の画面へ移動する処理です。pushViewControllerを使うと、ナビゲーションの流れの中で新しい画面を積み重ねることができます。
3. Segueとは?
Segue(セグエ)は、Storyboard(画面設計ツール)で使う画面遷移の仕組みです。ドラッグ&ドロップで簡単に設定できるため、コードを書かなくても画面をつなげることができます。
例えば、ボタンをStoryboard上で次の画面にドラッグしてつなぐと、自動的にSegueが設定されます。これを実行すると、指定した画面に移動します。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toNext" {
let nextVC = segue.destination as! NextViewController
nextVC.data = "データを渡します"
}
}
このように、Segueを使えばデータを次の画面に渡すことも可能です。
4. NavigationControllerとSegueの違い
NavigationControllerとSegueはどちらも画面遷移を実現しますが、使い方や特徴が異なります。
<table class="table table-bordered">
<thead>
<tr>
<th>特徴</th>
<th>NavigationController</th>
<th>Segue</th>
</tr>
</thead>
<tbody>
<tr>
<td>使い方</td>
<td>コードで制御</td>
<td>Storyboardで設定</td>
</tr>
<tr>
<td>戻る動作</td>
<td>自動で戻るボタンが表示される</td>
<td>戻る処理は個別に対応が必要</td>
</tr>
<tr>
<td>データの受け渡し</td>
<td>コードで簡単に渡せる</td>
<td><code>prepare</code>を使って渡す</td>
</tr>
<tr>
<td>向いている場面</td>
<td>複数画面を行き来するアプリ</td>
<td>単純な画面遷移やプロトタイプ</td>
</tr>
</tbody>
</table>
このように、複雑なアプリではNavigationControllerが便利で、簡単なアプリではSegueが直感的に使えます。
5. 初心者におすすめの使い方
初心者には、まずStoryboardのSegueを使って画面遷移を体験するのがおすすめです。コードを書かずに画面をつなげるだけで動作するため、理解しやすいです。
その後、NavigationControllerを使ったコードでの画面遷移に挑戦すると、アプリ開発の自由度が一気に広がります。
6. 例えで理解する画面遷移
画面遷移を旅行に例えてみましょう。NavigationControllerは「電車の路線図」のように順番に駅を移動でき、戻るボタンで前の駅に戻れます。一方、Segueは「目的地にワープするタクシー」のように、直接画面を飛び越えて移動します。
どちらも便利ですが、用途によって使い分けるのが大切です。
7. 学んだことを振り返る
Swiftの画面遷移にはNavigationControllerとSegueという2つの方法があります。どちらも初心者にとって重要な仕組みで、アプリ開発には欠かせません。
まずはStoryboardでSegueを試し、次にコードでNavigationControllerを扱う流れで学習すると理解が深まります。