it-swarm-pt.tech

initwithstyle: reuseIdentifier: não chamado

Estou criando meu próprio UITableViewCell personalizado para usar como back-end de uma célula protótipo. Na minha classe, substituo o initwithstyle:reuseIdentifier: método para fazer alguma inicialização personalizada, mas meu inicializador não é chamado. Eu tenho um ponto de interrupção na primeira linha dentro dela, bem como um ponto de interrupção em dequeueResusableCellWithIdentifier:. O dequeueResusableCellWithIdentifier: método é chamado e retorna uma célula inicializada, mas o ponto de interrupção em initwithstyle:reuseIdentifier: não foi atingido. Qualquer ajuda seria ótimo.

46
shmuelie

Se sua célula estiver sendo criada a partir de um protótipo de storyboard (que você declarou como a classe personalizada no IB), ela não será criada com initWithStyle... mas initWithCoder: em vez disso, como qualquer outro objeto carregado de uma ponta. Se você tiver algum código de configuração, ele deve estar lá ou em awakeFromNib.

83
jrturton

Com o storyboard envolvido, tudo muda. Este é o método que é chamado.

-(id)initWithCoder:(NSCoder *)aDecoder {
    if ( !(self = [super initWithCoder:aDecoder]) ) return nil;

    // Your code goes here!

    return self;
}
12
carbonr

Se você estiver usando o StoryBoarsd, o UITableViewContoller não chamará initWithStyle para substituí-lo por initWithCoder. Ele funcionará agora

0
Mahesh Aswathanarayana