Por que tableView dequeueReusableCellWithIdentifier: CellIdentifier retorna nulo?
Estou usando o xCode 4.2 para criar um aplicativo para iPhone.
Eu não sei porque esta afirmaçãoUITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
é nulo às vezes e não outras vezes. Vou indicar dois cenários, o primeiro em que a célula não é nula e o segundo em que é nulo. Deixe-me começar com o código de amostra compartilhado pelos dois cenários do meu WSCSessionTable que herda o UITableViewController:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
// we have null
}
return cell;
}
Cenário 1 - Célula não é nula
A célula não é nula, e tudo funciona bem quando eu configurar meu storyboard como assim
Cenário 2 - Célula é nulo
A célula é sempre nula quando eu configuro meu storyboard da seguinte forma:
Este é o manipulador de eventos para o botão que instancia a tabela.
- (IBAction)goToSession:(id)sender
{
wscAppDelegate *appDelegate = (wscAppDelegate *)[[UIApplication sharedApplication] delegate];
UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
wscSessions *childView = [storyboard instantiateViewControllerWithIdentifier:@"sessionstable"];
// wscSessions *childView = [storyboard instantiateViewControllerWithIdentifier:@"sessionstable"];
childView._arrData = appDelegate._arrSession;
childView._arrSpeaker = appDelegate._arrSpeaker;
childView.title = @"SEssions";
[self.navigationController pushViewController:childView animated:YES];
}
Alguém sabe por que a célula é sempre nula no cenário 2? Está causando problemas em outras partes do meu código.
Informação adicional Duas pessoas que comentários me disseram ot certificar-se de que o identificador de célula está definido como "célula". Aqui está uma captura de tela ... isso está correto? É assim no cenário 1 e no cenário 2.