Подкласс UITableViewCell не инициализируется при использовании loadNibNamed - PullRequest
4 голосов
/ 07 апреля 2011

У меня есть класс, который подклассы UITableViewCell. Мне нужно инициализировать некоторые значения в ячейке, когда она создается, и я создаю ее с помощью:

NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:nil options:nil];

При создании подкласса через интерфейс «Добавить новый файл» XCode я получаю следующий метод:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) 
    {
        self.selectionStyle = UITableViewCellSelectionStyleBlue;

        [txtField setEnabled:YES];
        [txtField setTextColor:[UIColor redColor]];
        [txtField setPlaceholder:@"Fake Placeholder - Test Initialize"];

        [contactBtn setEnabled:YES];
    }
    return self;
}

Код в этом методе никогда не выполняется. Как я могу это сделать? Если это не тот метод, который используется при создании экземпляра объекта (используя NSBundle loadNibNamed), то что это? Как я могу инициализировать ячейку при ее создании из пера таким образом?

Любая помощь очень ценится.

Ответы [ 2 ]

7 голосов
/ 07 апреля 2011

При загрузке из пера представления инициализируются вызовом initWithCoder:, а не одним из ваших обычных методов инициализации.Вы можете переопределить этот метод для инициализации или реализовать awakeFromNib.

0 голосов
/ 07 апреля 2011

Загрузка пера не создает никаких объектов, поскольку они уже созданы, а затем сериализованы в файле пера.

Попробуйте метод awakeFromNib, который отправляется всем объектам в файле пера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...