Warum gibt tableView dequeueReusableCellWithIdentifier: CellIdentifier null zurück?

Ich verwende xCode 4.2, um eine iPhone-App zu erstellen.

Ich weiß nicht warum diese AussageUITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; ist manchmal null und nicht zu anderen Zeiten. Ich werde zwei Szenarios angeben, das erste, in dem die Zelle nicht null ist, und das zweite, in dem sie null ist. Lassen Sie mich mit Beispielcode beginnen, der von beiden Szenarien aus meiner WSCSessionTable, die UITableViewController erbt, gemeinsam genutzt wird:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
     // we have null
    }
return cell;
}

Szenario 1 - Zelle ist nicht null

Die Zelle ist nicht null und alles funktioniert gut, wenn ich mein Storyboard so einrichte

Szenario 2 - Zelle ist null

Die Zelle ist immer null, wenn ich mein Storyboard so einrichte:

Dies ist die Ereignisbehandlungsroutine für die Schaltfläche, mit der die Tabelle instanziiert wird.

- (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]; 
    }

Weiß jemand, warum die Zelle in Szenario 2 immer null ist? Es verursacht Probleme an anderer Stelle in meinem Code.

Zusätzliche Information Zwei Leute, die ich kommentiert habe, sagten mir, ich solle sicherstellen, dass der Zellenidentifikator auf "Zelle" gesetzt ist. Hier ist ein Screenshot ... ist das richtig? Dies ist sowohl in Szenario 1 als auch in Szenario 2 der Fall.

Antworten auf die Frage(0)

Ihre Antwort auf die Frage