しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

Storyboard ReferenceでStoryboard:ViewControllerを1:1にする

今の仕事では 1Storyboard に 1ViewController しか置かないルールで開発しています。
その運用はコンフリクトが起きにくいのでとても快適に開発ができます。

しかし1Storyboard - 1ViewController 運用のデメリットとしてSegueが使えない点があります。

その問題を解決できるStoryboard ReferenceがXcode7.0から追加されたようなので試してみました。

シンプルな使い方

まずはMainとSubの2つのStoryboardを作ります。

f:id:llcc:20151004175622p:plain

SubにViewControllerを1つ配置してそれをInitial View Controllerにします。

f:id:llcc:20151004175655p:plain

MainにStoryboard Referenceを配置してStoryboardの名前にSubと入力します。

f:id:llcc:20151004175833p:plain

Storyboard Referenceへのsegueを作ります。

f:id:llcc:20151004180035p:plain

Main.storyboardのボタンを押したらSub2.storyboardのViewControllerへ画面遷移してくれました。

f:id:llcc:20151004180208p:plain

segueIDを使って画面遷移

IDを指定したsegueの呼び出しもできました。

f:id:llcc:20151004180250p:plain

override func viewDidAppear(animated: Bool) {
    performSegueWithIdentifier("MySegue", sender: nil)
}

既存のStoryboardを分割する

既に大きくなっているStoryboardもRefactor to Storyborad...を使えば簡単に分割できます。

f:id:llcc:20151004180950p:plain

新しいStoryboard名を聞かれるので好きな名前を入れます。

f:id:llcc:20151004181100p:plain

今までViewControllerがあった部分がStoryboard Referenceに置き換わりました。

f:id:llcc:20151004181133p:plain

分割したStoryboardはこのようになっています。

f:id:llcc:20151004181220p:plain

少し入り組んだStoryboardを分割する

このように少し入り組んだStoryboardも分割できました。

f:id:llcc:20151004181414p:plain

f:id:llcc:20151004181440p:plain

Storyboard ReferenceへのSegueを持っているViewControllerも分割できました。

f:id:llcc:20151004181551p:plain

分割されたStoryboardにもSegueは紐付けられていました。

f:id:llcc:20151004181624p:plain

参考URL

Storyboard Reference がいい感じ - SH Lab の アプリ開発部屋