悪あがきプログラマー

悪あがきを続けていきたい技術と書評なブログです。トレタでiOSエンジニアやってます。

nibファイルのインスタンス化

今までnibファイルをほとんど使ったことがなくてインスタンス化の方法がわからなかった。

UITableViewControllerでnibファイルを使ったカスタムセルを使おうと思ったのだけど、nibファイルを使ったことがなくてどうすればいいんじゃろと。

新規ファイル作成で親クラスがUITableVIewCellだと「With XIB for user interface」のチェックボックスがdisableになる。でもcontroller系だとenableになる。
あれ、nibファイルを使うにはcontroller必須なの?

調べてみるとドンピシャなブログがヒット
Cocoaの日々: [iOS] UINib を使ったカスタム UITableViewCell の作り方

ちょっとハックっぽい書き方な気がしないでもないけど下記ソースでnibファイルをインスタンス化できるそうです。

UINib* nib = [UINib nibWithNibName:CUSTOM_CELL_NIB bundle:nil];
        NSArray* array = [nib instantiateWithOwner:nil options:nil];
        cell = [array objectAtIndex:0];

よし動いた。