自定义UITableViewCell初始化程序在IOS中出错

时间:2014-02-04 14:33:02

标签: ios objective-c uitableview

我正在使用这样的自定义单元格:

PropertyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

并注册为:

[self.tableView registerNib:[UINib nibWithNibName:@"PropertyCell" bundle:nil] forCellReuseIdentifier:@"PropertyCell"];

类声明为:

@interface PropertyCell : UITableViewCell <UITextFieldDelegate>

它在xib中包含一个UITextField,我需要在init上为它分配一个委托。

问题是:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
在这种情况下永远不会调用

该出队机制使用哪种初始化程序?

2 个答案:

答案 0 :(得分:2)

您将要使用此问题中公布的initWithCoder或awakeFromNib ...

initwithstyle:reuseIdentifier: not called

答案 1 :(得分:0)

确保使用UITableViewDataSource方法初始化您的单元格:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *PropertyCellIdentifier = @"PropertyCell";
    PropertyCell *cell = [tableView dequeueReusableCellWithIdentifier: PropertyCellIdentifier];

    if (!cell) {
        cell = [[PropertyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier: PropertyCellIdentifier];
    }

    // configure cell

    return cell;
}