はじめに
Storyboardを使用したiOSアプリ開発において、1つのStoryboardに対したくさんのViewControllerが詰め込まれているのは良くないということなので、Storyboardを分割する方法を記載します。
1つのStoryboardにViewControllerを複数突っ込んだ良くない例 | StoryboardReferenceを活用し、Storyboardを適切に分割している例 |
---|---|
![]() |
![]() |
概要
環境
Xcode : Version 12.4
内容
ViewControllerを用意し、それに対応するStoryboardファイルを作成する。
(1画面につき1つのViewControllerである前提です)
実装手順
1) Storyboardファイルを作成する
main.storyboardと同ディレクトリにてcommond + N
で新規ファイルを作成します。
ファイルの種類をStoryboardと選択し、決定します。
その後にファイル名を入力するのですが、今回は"second"とします。
(この時、初期値がStoryboard
と大文字Sで入力されているのですが、これを残した状態でsecond.Storyboard
などとしてしまうと、拡張子エラーでファイルが開けなくなるので注意してください)
2) ViewControllerファイルを作成する
次に、新しく作成された上記のsecond.storyboardに対応するViewControllerファイルを作ります。
先ほどと同じ要領で作成していきます。
Cocoa Touch Classを選択し、ファイル名はsecondViewController
としました。
このように2つのファイルが出来ていればOKです。
3) Storyboard Referenceを設置する
ではいよいよStoryboard Referenceを設置していきます。
main.storyboardのLibraryからObjectを検索します。ref
と入れれば出てくるので空いているところにドラッグ&ドロップしていきます。
設置できたらStoryboard ReferenceのInspectorsで、対応するStoryboardを選びます。今回は先ほど作成したsecond
となります。
4) segueの設定を行う
画面遷移のためにsegueの設定をします。
ViewControllerからStoryboard Referenceにsegueを繋ぎます。
segueを繋いだらsegue Identifierも設定しておきましょう。今回はgoSecond
とします。
segueについての解説は本記事では省略しますが、以下の記事がとても分かりやすく参考にさせて頂きました。ありがとうございます。
5) 作成したstoryboardにViewControllerを設置
1)で作成した何もない状態のsecond.storyboardにViewControllerを設置します。

設置後はViewControllerのCustom Class
の設定、Is Initial View Controller
のチェックをします。
6) 画面遷移を試す
Storyboardを切り離す作業・設定は完了したので、下記2点を追記してちゃんと動作するかどうかを画面遷移させてみて確認します。
- main.storyboardにButtonを設置
- ViewController.swiftに画面遷移のメソッドを記述
- (遷移先のViewに色をつけて分かりやすくする)
// ViewController.swift
@IBAction func goSecondButtonTapped(_ sender: UIButton) {
performSegue(withIdentifier: "goSecond", sender: nil)
}
後語り
以上がStoryboard Reference
活用による、Storyboardを分割して1つのStoryboardに対して1つのViewController
という配置をする方法となります。
このようにStoryboardを分割して管理することで、コンフリクトも起こりにくくなります。
私自身もしっかりと理解を深め活用していきたいと思います。
2021.3.2 大文字小文字を修正