2017-06-05 10 views
0

私はYouTubeで複数の動画を見て、説明付きの2冊の本(O'Reilly)を購入しました。nib/xibファイルは、別のView Controllerで使用することを目的としていますか?

nibファイルは常に1つのビューコントローラで使用されているようです。 ファイル所有者は通常、そのペン先を実装するView Controllerです。

nibファイルが複数のView Controllerで使用されている例が見つかりませんでした。

私はこれを回避する方法を見つけましたが、投稿は古く、多くの人が警告を残しました。

私は最初に複数のtableViewControllerで使用されていたテーブルビューセルを持っていたので、nibファイルを使用するように促しました。 tableViewCellは、ストーリーボードのTableViewControllerの1つでプロトタイプ化されました。

私はペン先を作成すると、そのセルを特定のTableViewControllerから切り離すと考えました。

私は本当にペン先ファイルの目的を理解しているとは言えません。 ストーリーボードとよく似ているようです。

コード内にtableViewCellを作成し、プロジェクト全体で再利用しました。

私の質問は、nibファイルの用途です。

特定のビューコントローラからビューを切り離すために使用されますか?

1つのViewController内で重複を避けるために使用されていますか?

洞察力があれば助かります。

答えて

0

はい、アプリ内のさまざまな場所でxibsを再利用できます。

Xibsはストーリーボードに先立ち、Interface Builderで設定されたUIViewクラスのインスタンスを作成するファクトリとして機能します。それらを使用してUIViewControllerviewとそのサブビューのレイアウトと属性を定義するのはよくあるケースですが、確かに唯一のものではありません。

xibが再利用される一般的な場所は、テーブルまたはコレクションビューのセルが含まれている場合です。その後、必要に応じてregister(_ nib: UINib?, forCellWithReuseIdentifier identifier: String)を使用して、そのxibを複数のテーブルビューまたはコレクションビューに登録して、セルのインスタンスを読み込むことができます。

+0

あなたが指定した例では、interfacebuilderのnibファイルのowner Typeとして 'UICollectionViewController'を設定しますか?または、それはデフォルトの 'NSObject'のままになりますか? – 3366784

+0

この場合、File's Ownerを変更する理由はありません。 xibに設定された所有者は、オブジェクトがhttps://developer.apple.com/documentation/uikit/uinib/1614137に渡されたときに、アウトレットとアクションとして安全に設定できるプロパティとセレクタについて、Interface Builderのヒントです - インスタンス化 – Jonah

関連する問題