Help us understand the problem. What is going on with this article?

StoryboardとXIBの使い分け

More than 3 years have passed since last update.

iOS開発において、Interface Builder(IB)を利用した開発を行う場合、StoryboardとXIBを使うことができます。
しかし、ルールを決めないで開発を進めるとコードの可読性が低くなります。

まず、Storyboard、XIB単体で使った場合の問題点をお知らせします。
Storyboardだけ利用した場合はすべてのUI部品が一つのStoryboard
に記述されるため、再利用が難しくなります。また、部品数が多くなると読み込みに時間がかかることが想定されます。
XIBだけ利用した場合は画面遷移の定義をすべてコードで記述することになります。

そこで、それぞれの長所を利用した使い分けかたをご紹介します。
まず、UIViewController(VC)クラスに対応するXIBファイルを作成し、
UIViewを配置します。XIBファイルのFile's Owner のCustom Classに
VCクラスを設定します。VCクラスのloadViewメソッドをオーバーライドして、Xibからビューを作成し、viewプロパティに設定します。

swift
    override func loadView() {
        let type = Mirror(reflecting: self).subjectType
        let className = String(type).componentsSeparatedByString(".")[0]
        let nib = UINib(nibName: className, bundle: nil)
        self.view = nib.instantiateWithOwner(self, options: nil).first as? UIView
    }

Storyboardでは配置したVCクラスのCustom ClassにVCクラスを設定するとStoryboard上でXibで作成したVCクラスを再利用することが可能になります。

*コードでxibからVCクラスのインスタンスを作成する場合は、UIKitのframeworkで用意されている、コンビニエンスメソッドを利用しても取得できます。

swift
let viewController = UIViewController(nibName: ":nibName", bundle: nil)

ootake
アプリ開発者 【得意分野】 iOS(Swift,Objective-C) Unity(C#) 【資格】 情報処理技術者試験 応用情報技術者試験 (AP) ORACLE MASTER Gold 9i Database (OCP) 日商簿記検定1級
https://github.com/ootake
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした