Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #259】Xcode7新機能 Storyboard Referenceの使い方を語る。Storyboardを使ってコンフリクトに苦しんでいた人は必見。

Storyboardは敬遠されがちだった

Storyboardを使うのを敬遠している人は結構いる。

なぜなら?

  • 複数の人が同時に編集したためにコンフリクト発生
  • コンフリクトを防ぐためにStoryboardを分割すると、
    コードからStoryboardファイルを指定して、初期化しないといけない
  • その他

私がiOS開発の勉強を始めた時には初心者向け参考書は
Storyboardを使う説明が多かったので、
Storyboardを使わない開発のほうが面倒と思っていた。

しかし、仕事でiOS開発するようになり、複数の人で開発するようになると、
Storyboardのコンフリクトがまじぱねー

「今、編集してるって言ったじゃん」「すみません」

「うわっ、またコンフリクトした」

みたいなことがあってから、敬遠してしまっていた。

Storyboard Referenceの登場

Xcode7ではStoryboard Referenceが登場し、 あるStoryboardファイルから別のStoryboardファイルの参照ができるようになった。

つまり、コンフリクトを避けるためにStoryboardファイルを複数作成しても、 Storyboardを使っているのにコードで初期化する作業をなくすことができるようになった。
画面遷移を一覧できるStoryboardの良さをそのまま活かすことができる。

※ただし、ターゲットのOSはiOS9以上でなければならないのは注意。

Storyboard Referenceを使うとどうなるか?

例えば、ひとつのStoryboardファイルで画面と画面遷移を書いているとする。 f:id:fjswkun:20151002105445p:plain

複数の人で開発していて、 ひとりが赤い画面を編集し、もうひとりが緑の画面を編集したら、 コンフリクトするでしょう。

Storyboard Referenceを使った場合

Storyboardをこのようにできます。

f:id:fjswkun:20151002111918p:plain

RedViewControllerとGreenViewControllerというのは
他のStoryboardファイルへの参照を表しています。

  • 画面毎にStoryboardを分けられる
    コンフリクトの可能性を減らせる

  • 画面遷移だけ書いたStoryboardを作れる
    他の画面のStoryboardに遷移するときにコードで書く必要ない。
     画面遷移をひと目で確認できるのがうれしい。

サンプル

ひとつのStoryboardで開発していたのを
Storyboard Referenceを使って書き換える場合、
下記の流れで行います。

1. Storyboardファイルを分ける

Storyboardファイルは下記3ファイルになります。

  1. 画面遷移を書いたStoryboardファイル(Main.storyboard)
  2. 赤い画面のStoryboardファイル(RedViewController.storyboard)
  3. 緑の画面のStoryboardファイル(GreenViewController.storyboard)

f:id:fjswkun:20151002110138p:plain

2. Storyboard IDを設定する

画面のStoryboardファイルにStoryboard IDを設定しましょう。
他のStoryboardファイルから参照されるときに、 Storyboard IDが使用されます。

Storyboard IDを設定するのは下記2つのStoryboardファイルです。

  • 赤い画面のStoryboardファイル(RedViewController.storyboard)
  • 緑の画面のStoryboardファイル(GreenViewController.storyboard)

f:id:fjswkun:20151002110627p:plain

f:id:fjswkun:20151002110640p:plain

3. 他のStoryboardから参照する

画面遷移を書いたStoryboardファイル(Main.storyboard)を編集します。

Storyboard Referenceを2つ追加する。 f:id:fjswkun:20151002110957p:plain

タブバーコントローラーとSegueで接続する。 f:id:fjswkun:20151002111202p:plain

Storyboard Referenceを選択し、 StoryboardとStoryboard IDを設定する。

まずは赤い画面のViewControllerの設定。 f:id:fjswkun:20151002111449p:plain

次は緑の画面のViewControllerの設定。 f:id:fjswkun:20151002111601p:plain

結果

起動。 f:id:fjswkun:20151002111707p:plain

f:id:fjswkun:20151002111716p:plain

おわりに


【ROCOCO】[Apple iPhone 6 iPhone6 アップル iPhone6 i-Phone6 iPhone 6s Iphone6s アイフォン6s 共用 Diary Case] IPHONE6 手帳型 ケース IPHONE6 カバー 手帳 IPHONE6 レザーケース IPHONE6 スマホケース IPHONE6 ダイアリーケースIPHONE6S 手帳型ケース IPHONE6S ケース 手帳 アイフォン6s アイフォン 6s 『無料配送』 ★NAVY/YELLOW★


交換保障付き iPhone6/6S (4.7インチ)用 0.3mm 強化ガラスフィルム 硬度9H ラウンドエッジ加工 気泡ゼロ 指紋防止機能 クリア iPhone6S アイフォン6 iPhone6 ガラスフィルム 保護フィルム 保護シート 液晶保護 スマートフォン スマホ 15AC8-1-CLR

参考情報

Swift

iOSアプリ開発未経験の人向け
iOSアプリ開発をはじめたとき最初に買った書籍 【アプリ作成未経験の人向け】
Storyboardを使って画面を作成していく。
手順にしたがって操作していくと、ボタンの作成やWebViewの作成などができる。
アプリって、こんな感じで作るんだというのを体験できる。

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】


・わかりやすくていい、と聞いた本
立ち読みした感じだと【アプリ作成未経験の人向け】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】


②を終えたくらいの知識の方向け
・アプリ開発独学中に2冊めに購入した書籍
プログラミング知識はなくても、若干理解するのに時間がかかる程度で、
読み進められるわかりやすさがある。

iPhoneアプリ開発塾

iPhoneアプリ開発塾


③中級者、上級者向け

詳解 Swift

詳解 Swift