为什么tableView dequeueReusableCellWithIdentifier:CellIdentifier返回null?

时间:2012-05-25 17:52:45

标签: objective-c uitableview

我正在使用xCode 4.2来构建iPhone应用程序。

我不知道为什么这句话UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];有时是空的,而不是其他时候。我将陈述两个场景,第一个是cell不为null,第二个是null。让我从我继承UITableViewController的WSCSessionTable的两个场景共享的示例代码开始:

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

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

场景1 - 单元格不为空

单元格不是null,当我像这样设置故事板时一切正常 Navigation Controller to WSCSessionTable

场景2 - 单元格为空

当我设置故事板时,单元格总是为空:

Activate WSCSession via button tap

这是实例化表的按钮的事件处理程序。

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

有没有人知道为什么在方案2中单元格总是为空?它在我的代码中的其他地方引起了问题。

其他信息 我评论的两个人告诉我,确保单元格标识符设置为“单元格”。这是一个屏幕截图......这是正确的吗?在场景1和场景2中都是这样的。 enter image description here

0 个答案:

没有答案