【问题标题】:why dequeueReusableCellWithIdentifier returns nil [closed]为什么 dequeueReusableCellWithIdentifier 返回 nil [关闭]
【发布时间】:2014-01-17 06:52:13
【问题描述】:

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

【问题讨论】:

  • 请在问题本身中包含代码的相关部分,而不是链接到可下载的文件。
  • @DavidRönnqvist 在这里stackoverflow.com/questions/20835765/… 我没有正确答案,因为我决定粘贴源代码链接
  • @Abbath 检查我的答案
  • 我看过你的代码,我不知道那里出了什么问题,所以重新开始我认为项目中有问题
  • @Abbath:检查我更新的答案。

标签: ios iphone ios5 storyboard


【解决方案1】:

按照以下步骤操作:-

  1. 创建一个新的 xib 文件,将其命名为“CNTransportCell”。
  2. 在该笔尖文件中拉入tableViewCell。进行自定义,并确保使用唯一的重用标识符(在您的情况下 - TransportCell)。
  3. 在 Identity Inspector 中,为其分配 CNTransportCell 类。
  4. 按住 Control 从标签拖动到 CNTransportCell.h 文件 到IBOutlets
  5. 使用tableView:cellForRowAtIndexPath:中的方法registerNib:forCellReuseIdentifier:,看起来类似——

    static NSString *CellIdentifier = @"TransportCell";
    
    [tableView registerNib:[UINib nibWithNibName:@"CNTransportCell" bundle:nil] forCellReuseIdentifier:CellIdentifier];
    CNTransportCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    

更新编辑: 好的,如果您不想要外部笔尖,请通过以下操作:-

  1. 只需从情节提要文件中选择CNCarTableController
  2. 去找身份检查员。
  3. 并将 storyboard id 设为“CNCarTableController”。
  4. 现在,改变你的方法searchClick:(id)sender如下:

    CNCarTableController *myViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"CNCarTableController"];
    
    [self.navigationController pushViewController:myViewController animated:TRUE];
    

希望你明白了。

【讨论】:

  • 你能解释一下他用tableview创建了故事板,那么为什么我们创建单独的xib来加载笔尖??
  • @Yohan:因为他有自定义 UITableViewCell 类!!!
  • 感谢它的工作:)
【解决方案2】:

也添加数据源

评论这两行,因为您尝试两次推送代码,一次尝试使用情节提要,另一次使用编码。

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

【讨论】:

  • 它的作品接受了我的回答
【解决方案3】:

你犯了一个简单的错误。您没有将表视图dataSourcetableviewController 连接起来。

【讨论】:

  • 好的,我明白了,如何使用按钮单击创建正确的结构-> tableView?
  • 你到底想做什么?
  • 我需要应用程序,其中我的根视图控制器带有按钮,点击它后我需要打开 tableView 窗口
  • @Abbath:跟我来吧。它正在工作!
猜你喜欢
  • 2014-09-27
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-11
  • 2021-12-03
  • 1970-01-01
相关资源
最近更新 更多