为什么dequeueReusableCellWithIdentifier返回nil

时间:2013-12-30 11:31:21

标签: ios iphone ios5 storyboard

在我的项目中,我的故事板包含NavigationControllerViewControllerTableViewController我尝试创建自定义原型单元格,但dequeueReusableCellWithIdentifier始终返回nil。我做错了什么? source code

3 个答案:

答案 0 :(得分:1)

请按照以下步骤操作: -

  1. 创建一个新的xib文件,将其命名为“CNTransportCell”。
  2. 在该nib文件中拉入tableViewCell。使其自定义,并确保使用唯一的重用标识符(在您的情况下为TransportCell)。
  3. 在Identity Inspector中,为其指定CNTransportCell类。
  4. 控制 - 从标签拖动到CNTransportCell.h文件 到IBOutlets
  5. 使用registerNib:forCellReuseIdentifier:中的tableView:cellForRowAtIndexPath:方法,类似于

    static NSString *CellIdentifier = @"TransportCell";
    
    [tableView registerNib:[UINib nibWithNibName:@"CNTransportCell" bundle:nil] forCellReuseIdentifier:CellIdentifier];
    CNTransportCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
  6. 更新编辑: 好的,如果你不想要外部笔尖,那么请看看: -

    1. 只需从故事板文件中选择CNCarTableController即可。
    2. 去身份检查员。
    3. 并将 storyboard id 指定为“CNCarTableController”。
    4. 现在,按以下方式更改您的方法searchClick:(id)sender

      CNCarTableController *myViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"CNCarTableController"];
      
      [self.navigationController pushViewController:myViewController animated:TRUE];
      
    5. 希望你明白了。

答案 1 :(得分:0)

还添加dataSource

评论这两行是因为你试图在你的代码中进行两次推送,一次尝试使用storyboard,另一次使用编码。

   - (IBAction)searchClick:(id)sender {
        //CNCarTableController *car = [[CNCarTableController alloc]init];
        //[self.navigationController pushViewController:car animated:TRUE];
    }

答案 2 :(得分:0)

你犯了一个简单的错误。您没有将表格视图dataSourcetableviewController相关联。