今の仕事では 1Storyboard に 1ViewController しか置かないルールで開発しています。
その運用はコンフリクトが起きにくいのでとても快適に開発ができます。
しかし1Storyboard - 1ViewController 運用のデメリットとしてSegueが使えない点があります。
その問題を解決できるStoryboard Reference
がXcode7.0から追加されたようなので試してみました。
シンプルな使い方
まずはMainとSubの2つのStoryboardを作ります。
SubにViewControllerを1つ配置してそれをInitial View Controller
にします。
MainにStoryboard Reference
を配置してStoryboardの名前にSub
と入力します。
Storyboard Reference
へのsegueを作ります。
Main.storyboardのボタンを押したらSub2.storyboardのViewControllerへ画面遷移してくれました。
segueIDを使って画面遷移
IDを指定したsegueの呼び出しもできました。
override func viewDidAppear(animated: Bool) { performSegueWithIdentifier("MySegue", sender: nil) }
既存のStoryboardを分割する
既に大きくなっているStoryboardもRefactor to Storyborad...
を使えば簡単に分割できます。
新しいStoryboard名を聞かれるので好きな名前を入れます。
今までViewControllerがあった部分がStoryboard Reference
に置き換わりました。
分割したStoryboardはこのようになっています。
少し入り組んだStoryboardを分割する
このように少し入り組んだStoryboardも分割できました。
Storyboard ReferenceへのSegueを持っているViewControllerも分割できました。
分割されたStoryboardにもSegueは紐付けられていました。