LoginSignup
3
2

More than 1 year has passed since last update.

[Xcode] Storyboard Referenceを使用してStoryboardを分割する

Last updated at Posted at 2021-03-05

はじめに

Storyboard Referenceは、他のStoryboardを参照してStoryboardを分割できるものです。
Segueで異なるStoryboard間をつなげることもできます。
アプリの画面数が増えてくると、1つのStoryboardに収めて管理するのは厳しいです。
Storyboard画面を頻繁に拡大縮小するのはかなり煩わしいです (私はノートパソコンなので特に、、、)。
個人開発でさえこのように感じるのであれば、チーム開発では尚更であることは想像に容易いです。
本記事では、Storyboard Referenceを使用して、Storyboardを分割する手順を簡単にまとめてみました。

環境

[Xcode] Version 12.4
[Swift] Version 5.3.2
[iOS] 14.4
[MacOS] 10.15.7

今回作成するサンプル

下図のようなシンプルな画面遷移アプリを想定します。
各タブごとにStoryboardを (赤、青、緑に)分割し、最終的には同じ画面(紫)に遷移できるようにします。
1.png

Storyboard Referenceを作成する

Storyboardを分割する際、以下の2パターンの状況が想定できます。

  1. すでに同じStoryboard内で画面遷移が完成しており、その状態からStoryboardを切り分ける
  2. 最初からStoryboardを分けて作成する

本記事では、1の方法を行います。
最後に紫画面への参照を作るときのみ2でやってみます。

まず、切り分けたい画面を複数選択し、[Editor] > [Refactor to Storyboard...]をクリックします。
2.png
切り分けるStoryboard名 (今回はRed.storyboard)と、そのファイルを入れるフォルダ (Group)を選択して[Save]をクリックします。
3.png
Storyboard」フォルダなんかを作ると良いかもしれません。ファイルを選択して右クリック > [New Group from Selection]でフォルダを作成できます。
4.png
他の画面 (青、緑)も同様に切り分けると、メインのStoryboardは以下のようになります。
5.png
切り分けたStoryboardを見てみると、紫画面へのSegueが切れています。これは後で繋ぎ直す必要があります。
また、Storyboardの最初の画面には、「Attributes inspector」の「is initial View Controller」にチェックを入れておく必要があります。
6.png
7.png
以上で完了です。

次に、紫画面のStoryboardを2の方法で分割して画面遷移できるようにします。
まず、新しいstoryboardファイルを作成します (ファイル名はPurple.storyboardにしておきます)。
8.png 9.png
ViewControllerを作成します。
10.png
あとは遷移元のStoryboardでStoryboard Referenceを作成するだけです。
11.png
[Attributes inspector]の「Storyboard」に紐付けたいStoryboard名を入力します。
12.png
今回は画面遷移させたいだけので、Storyboard ReferenceにSegueを繋いで完了です。
13.png

[補足] TabBarのアイコンやタイトルを変更する

Storyboard Referenceを用いてStoryboardを分割したとき、TabBarのアイコン等をどこで変更するのか少し迷ったので補足します。
初めは、TabBarControllerの方で設定すると思っていたのですが、titleやimageを変更しても反映されませんでした。
14.png
参照先のStoryboardの親ViewControllerで設定すると反映されるようです。
15.png
正しく反映されていました。
16.png

最後に

今回、初めてStoryboardを分割してみましたが、非常に簡単であり、Storyboardも管理しやすくなりました。
個人的には、まず1つのStoryboardで画面遷移を作成し、最後に切り分けていく1の方法が効率的と感じました。
より良い方法があれば教えていただけると幸いです。

参考文献

以下の情報を参考にさせていただきました。
- Storyboardをあとから簡単に分ける方法

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2