dequeueReusableCellWithIdentifier保持返回nil

时间:2015-01-08 15:20:57

标签: ios uitableview swift

我基本上是想在这个链接中做些什么

  
    

How to Implement Custom Table View Section Headers and Footers with Storyboard

  

在我的故事板中,我在TableViewController

中嵌入了静态单元格

我选择了一个表格视图单元格并将标识符设置为" CustomHeader" (在故事板上)

及以下是我的代码片段

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        var headerView:UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("CustomHeader") as? UITableViewCell

        if (headerView == nil){
            println("errrrrrr")
        }
        return headerView
    }
    override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 30
    }

然而,控制台不断打印" errrrrrr"这意味着headerView是零。

但我认为其标识符为" CustomHeader"不能为零,因为我手动选择了一个单元格,并在故事板中将其标识符设置为CustomHeader !!

我是iOS的新手,所以我不知道问题所在。

感谢任何帮助。

提前致谢!

1 个答案:

答案 0 :(得分:7)

要从故事板中使单元格出列,您需要使用采用索引路径的方法。也就是说,不要使用:

dequeueReusableCellWithIdentifier(_:)

相反,请使用:

dequeueReusableCellWithIdentifier(_:forIndexPath:)

你所关联的问题中的hacky方法不再适用。此方法返回标头。不要让细胞出列。

您应该使用registerNib(_:forHeaderFooterViewReuseIdentifier:)registerClass(_:forHeaderFooterViewReuseIdentifier:)以及dequeueReusableHeaderFooterViewWithIdentifier(_:)作为记录。