I have a custom UITableViewCell subclass with a simple IBOutlet setup for a UILabel.
class SegmentCell: UITableViewCell { @IBOutlet weak var test: UILabel! override init(style: UITableViewCellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) test.text = "Some Text" } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } } Convinced I have everything set up correct have followed other answers, but the UILabel is always nil.
ViewController: viewDidLoad:
self.tableView.registerClass(SegmentCell.self, forCellReuseIdentifier: "Cell") cellForForAtIndexPath
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! SegmentCell return cell } - Cell is set to Custom
- Reuse identifier is correct
- Cells class is SegmentCell
- Tableview content is Dynamic Prototypes
What am I missing?
weak varis the key - if yourSegmentCellis the only thing that ever holds a reference to theUILabel, that won't contribute to the retain count and so the label will be deallocated because nobody has a strong reference to it. By the time you attempt to set.text, it's already gone.