【Swift】Storyboardの肥大化を防ぐ為に分割Storyboardを運用する方法
本記事はこちらの動画を参考にしています。
日頃私も観ていますのでみなさんチャンネル登録してみてください。
Before
下記のように複雑化したStoryboardをAfterのように整理します。
After
そして、Red.Storyboardを開くと、
このように分割されたViewControllerになります。
既存のStoryboardを分割する方法
分割したいViewControllerをCommand+クリックで複数選択し、
Editor > Refactor to Storyboardを押し、Storyboardの名前を変更します。
これでRed.Storyboardを分割することができます。
分割したStoryboardを新たに繋げる方法
Storyboardからオブジェクトで以下を選択します。
そしてControlを押しながら繋げたいViewControllerと繋ぎます。
コードで分割したStoryboardを呼び出す方法
呼び出される側のクラス
※ Red.Storyboardの最初に呼び出されるRedViewController
また、最初に呼び出される為にはIs Initial View Controllerを設定してください。
import UIKit
// 呼び出される側のクラス
class RedViewController: UIViewController {
static func instantiate() {
UIStoryboard(name: "Red", bundle: nil).instantiateInitialViewController() as! RedViewController
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
// 冒頭のYoutubeを参考にinstantiate()書きました。参考元も再生お願いします。
呼び出す側のクラスは下記記述のみでStoryboardに書かれているViewControllerを呼び出すことができます。
let redVC = RedViewController.instantiate()
余談
元々私は、Main.Storyboardを1個置いて、
各自ViewControllerファイルをxibファイルでレイアウトを組むという形を行なっていました。
上記構成によるメリットはアプリ全体イメージがMain.Storyboardで書かれているので分かりやすい点だけはありました。
遷移が一応見れる感じにしてました。
しかしながら、今回の方法であれば細かくXibファイルを分割しないで数個のレイアウトファイルを1つのStoryboardにまとめて分割するのが一番良さそうな感じですね。
最後に
参考元動画、再生&チャンネル登録よろしくお願い致します!!