yaakaito.org

registerNibを使うとさらによいらしいです

InterfaceBuilder, Objective-C, UIKit, iOS

こんにちは!うきょーです! 前の続きです

UINibで楽チンにUITableViewCellをxibで作れることは分かったけど、

1
2
UINib *nib = [UINib nibWithNibName:@"HogeCell" bundle:nil];
cell = [[nib instantiateWithOwner:nil options:nil] objectAtIndex:0];

このコードはぶっちゃけ微妙だよね。

で、iOS5~だとregisterNibというものがあるらしく

1
2
3
4
5
- (void)viewDidLoad {
    [super viewDidLoad];

    [self.tableView registerNib:[UINib nibWithNibName:@"HogeCell" bundle:nil] forCellReuseIdentifier:kHogeCellReuseIdentifier];
}

こういう感じに書いておくと、さっきの生成部分が

1
cell = [[HogeCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kBGHogeCellReuseIdentifier];

こういう感じにいける、こっちのがよさげ。