这可能是一个简单的答案。
我正在尝试从我的自定义self.stat_value_color
访问变量,我尝试了多种方式实例化单元格,每次我收到错误声明值为nil,从而导致我相信我没有正确初始化细胞。
我知道要实例化一个#fb0000
我会做一些如:
tableviewcell
是否有类似的方法来初始化viewcontroller
澄清:
我想做的事情如下:
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("UserProfile") as! UserProfileViewController
答案 0 :(得分:-2)
您不应该以这种方式直接创建单元格。相反,您首先注册您的单元格以便重复使用:
tableView.registerNib(UINib(nibName: "yourNib", bundle: nil), forCellReuseIdentifier: "CellIdentifier")
然后在需要时将细胞出列:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CellIdentifier", forIndexPath: indexPath)
cell.user = username
return cell
}
这是因为tableView将重用已滚动屏幕的单元格以提高性能。请注意,它要求您设置单元格的重用标识符才能正确匹配。
答案 1 :(得分:-2)
正确的方法是你不应该这样做。正如迈克尔指出的那样,TableView
重用了单元格,所以尽管可以获得对单元格的引用,但只有在单元格已经被创建的情况下才有可能,并且因此没有被出列以供重用。在这种情况下,您应该做的是更新模型,然后告诉TableView
在对应于正确模型对象的索引处重新加载单元格。这样,您的应用程序遵循MVC设计,并且由于nil单元格引用而更加防止崩溃。